0

商品を更新した後で、商品の出荷クラスを編集するにはどうすればよいですか?商品のアップデートに関する商品出荷クラスを変更する - ウェブコマース

ここまで私はfunctions.phpを持っています。これはproduct_catという用語で動作しましたが、product_shipping_classでは機能しません。

add_action('save_post_product', 'my_product_save', 10, 3); 

function my_product_save($post_id, $post, $update) { 

    $shipping_class_slug = 'international-standard-shipping'; 

    wp_set_object_terms($post_id, $shipping_class_slug, 'product_shipping_class'); 

} 

ありがとうございます!

答えて

0

save_postフックは、post_metaが更新される前に実行されます。 post_metaが更新または追加された後に起動するフックを使用する必要があります。また、WooCommerce製品クラス関数を使用し、WordPress関数ではなく、出荷メタデータを設定する必要があります。

add_action('added_post_meta', 'woo_on_product_save', 10, 4); 
add_action('updated_post_meta', 'woo_on_product_save', 10, 4); 

function woo_on_product_save($meta_id, $post_id, $meta_key, $meta_value) { 
    if ($meta_key == '_edit_lock') { 
     if (get_post_type($post_id) == 'product') { 
      $product = wc_get_product($post_id); 
      $int_shipping = get_term_by('slug', 'international-standard-shipping', 'product_shipping_class'); 
      $product->set_shipping_class_id($int_shipping->term_id); 
      $product->save(); 
     } 
    } 
} 
+0

パーフェクト!それは欲しいものとして働いています。どうもありがとう。 –

+0

あなたは大歓迎です。 –

関連する問題