簡體   English   中英

WordPress:如何在保存產品woocommerce之前添加新的帖子元

[英]WordPress : how add new post meta before saving product woocommerce

我有一個來自另一個 wocommerce 網站的 api,並使用我的產品 sku 獲取一些信息,如何在創建新產品后添加此信息以發布元數據? 我想在創建產品時,將信息與 api 和產品 sku 一起保存並保存以發布元數據。

我找到了這個鈎子,但我認為這不起作用

<?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

Woocommerce 產品是 WordPress 帖子。 你可以使用像save_post & $post_id這樣的 wordpress 鈎子作為它的參數。 你正在傳遞$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');
    }
}

試試下面的代碼。 請注意,在代碼中 $unique 是true還是false取決於元值是否應該是唯一的。

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 );
    }    
 }
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->query($wpdb->prepare('UPDATE '.$tablename.' SET meta_value="test" WHERE post_id='.$post_id));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM