Я пытаюсь обновить метаданные продукта WooCommerce с помощью функции update_post_meta (), но это не работает.
Вот мой код:
function woo_add_deal_general_fields_save( $post_id ){ $post_id = (int)$post_id; // tried to convert into integer $woocommerce_textarea = $_POST['_deal_textarea']; if( !empty( $woocommerce_textarea ) ) if ( get_post_meta($post_id, '_deal_textarea', FALSE ) ) { $test= update_post_meta($post_id, '_deal_textarea', $woocommerce_textarea ); } else { add_post_meta($post_id, '_deal_textarea', $woocommerce_textarea ); } var_dump($test);exit; }
Если я попробую с фиксированным идентификатором продукта, он работает :
$test= update_post_meta(70, '_deal_textarea', $woocommerce_textarea );
Почему он не работает с $post_id, (int)$post_id, & either get_the_ID();
?
Вот часть моего кода, как вызовы функций:
// Display Fields add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' ); // Save Fields add_action( 'woocommerce_process_product_meta', 'woo_add_deal_general_fields_save' ); function woo_add_custom_general_fields() { global $woocommerce, $post; $feature_product=get_post_meta(get_the_ID(), '_featured', true ); if($feature_product=='yes'){ echo '<div class="options_group">'; // Custom fields will be created here... // Textarea woocommerce_wp_textarea_input( array( 'id' => '_deal_textarea', 'label' => __( 'Deal Caption', 'woocommerce' ), 'placeholder' => '', 'description' => __( 'Enter the Deal Product Text value here. (will be shown on home page)', 'woocommerce' ) ) ); echo '</div>'; } }
благодаря