获取自定义分类值并将其设置为 Woocommerce 中的订单元数据
Get a custom taxonomy value and set it as Order meta data in Woocommerce
我有一个名为 "seller" 的自定义分类法存储卖家 ID 的产品。
我的问题:
购买产品时,如何获取价值以在后端结转到订单?
这是我目前得到的:
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_seller_meta' );
function my_custom_seller_meta( $order_id ) {
$order = wc_get_order( $order_id );
$prod_id_for_seller_id = $order->get_items();
$prod_id = $prod_id_for_seller_id['484']['product_id']);
$seller_id = wp_get_post_terms( $prod_id, 'soldby' );
update_post_meta( $order_id, '_seller_id_order', $seller_id );
}
感谢任何帮助。
由于一个订单可以有很多不同的项目,我不确定这是一个好的解决方案。无论如何,您的代码中存在一些错误。
如果您的自定义分类法是 "seller",为什么要在 wp_get_post_terms()
函数中使用 "soldby"。 wp_get_post_terms()
函数将为您提供 post 项 的数组,用于 'seller' 自定义分类…
试试这个:
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_seller_meta', 30, 1 );
function my_custom_seller_meta( $order_id ) {
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_items = $order->get_items(); // Get order items
$item = current( $order_items ); // Get the first item
// Get custom taxonomy 'seller' array of WP_Term objects
$terms = wp_get_post_terms( $item->get_product_id(), 'seller' );
$wp_term = reset($terms); // Get the first WP_Term
$term_id = $wp_term->term_id;
$term_slug = $wp_term->slug;
$term_name = $wp_term->name;
update_post_meta( $order_id, '_seller_id_order', $term_slug );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。
它应该有效
我有一个名为 "seller" 的自定义分类法存储卖家 ID 的产品。
我的问题:
购买产品时,如何获取价值以在后端结转到订单?
这是我目前得到的:
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_seller_meta' );
function my_custom_seller_meta( $order_id ) {
$order = wc_get_order( $order_id );
$prod_id_for_seller_id = $order->get_items();
$prod_id = $prod_id_for_seller_id['484']['product_id']);
$seller_id = wp_get_post_terms( $prod_id, 'soldby' );
update_post_meta( $order_id, '_seller_id_order', $seller_id );
}
感谢任何帮助。
由于一个订单可以有很多不同的项目,我不确定这是一个好的解决方案。无论如何,您的代码中存在一些错误。
如果您的自定义分类法是 "seller",为什么要在 wp_get_post_terms()
函数中使用 "soldby"。 wp_get_post_terms()
函数将为您提供 post 项 的数组,用于 'seller' 自定义分类…
试试这个:
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_seller_meta', 30, 1 );
function my_custom_seller_meta( $order_id ) {
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$order_items = $order->get_items(); // Get order items
$item = current( $order_items ); // Get the first item
// Get custom taxonomy 'seller' array of WP_Term objects
$terms = wp_get_post_terms( $item->get_product_id(), 'seller' );
$wp_term = reset($terms); // Get the first WP_Term
$term_id = $wp_term->term_id;
$term_slug = $wp_term->slug;
$term_name = $wp_term->name;
update_post_meta( $order_id, '_seller_id_order', $term_slug );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。
它应该有效