WordPress:如何在保存产品woocommerce之前添加新的post meta

时间:2016-06-20 12:19:59

标签: php wordpress custom-fields wordpress-hook post-meta

我有来自另一个wocommerce网站的api,并使用我的产品sku获取一些信息 如何在创建新产品后将此信息添加到post meta? 我想当我创建一个产品时,信息采用api和产品sku并保存到post meta。

我找到了这个钩子,但我认为这不起作用

<?PHP
function my_product_att( $sku ) {
   // my api codes and take information and use      
   add_post_meta('product_id','key','value');
   // i haven't problem here i just need Appropriate hook 
}
add_action( 'save_post', 'my_product_att' ); // this hook not work for woocommerce

3 个答案:

答案 0 :(得分:2)

Woocommerce Products是wordPress的帖子。你可以使用像save_post&amp; $post_id作为其论点。您正在传递错误的$sku

add_action( 'save_post', 'wpse_110037_new_posts' );
function wpse_110037_new_posts($post_id){
    $post_type = get_post_type($post_id);
    if($post_type == 'products') {
        add_post_meta($post_id,'key','value');
    }
}

答案 1 :(得分:0)

尝试以下代码。请注意,代码$ unique为truefalse,具体取决于元值是否应该唯一。

add_action('transition_post_status', 'product_created_function', 10, 3);
function product_created_function($newstatus, $oldstatus, $post) {
    if($oldstatus != 'publish' && $newstatus == 'publish' && !empty($post->ID) && in_array( $post->post_type, array( 'product') ) ) {
         add_post_meta( $post->ID, $key, $value,$unique );
    }    
 }

答案 2 :(得分:0)

add_action( 'save_post', 'prowp_save_meta_boxdddd' );
function prowp_save_meta_boxdddd( $post_id ) {
global $wpdb;
$table_prefix = $wpdb->prefix;
$tablename = $table_prefix.'postmeta';

$ wpdb-&gt; query($ wpdb-&gt; prepare('UPDATE'。$ tablename。'SET meta_value =“test”WHERE post_id ='。$ post_id));     }