如何在更新后使用代码编辑产品的运输类?
这是我到目前为止在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 :(得分: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();
}
}
}