我正在尝试将我的woocommerce产品的自定义元数据添加到我的Woocommerce Admin中的订单列,但此代码不能用于我在WordPress主题中的function.php。
// Order Get Meta for PD Number add_action('woocommerce_add_order_item_meta','adding_custom_data_in_order_items_meta', 1, 3 ); function adding_custom_data_in_order_items_meta( $post_id, $cart_item_key ) { // The corresponding Product Id for the item: $product_id = $post_id[ 'product_id' ]; //$pd_number = $post_id['_pd_number']; //$pd_number = $_POST['_pd_number']; $pd_number = get_post_meta( $post_id[ 'product_id' ], '_pd_number', true ); if ( !empty($pd_number) ) wc_add_order_item_meta($post_id, '_pd_number', $pd_number, true); }
由于
答案 0 :(得分:1)
自Woocommerce 3以来,建议使用更好的钩子(参见this answer主题)。
您的代码中存在一些错误。试试这个:
// Add the the product custom field as item meta data in the order
add_action( 'woocommerce_add_order_item_meta', 'pd_number_order_meta_data', 10, 3 );
function pd_number_order_meta_data( $item_id, $cart_item, $cart_item_key ) {
// get the product custom field value
$pd_number = get_post_meta( $cart_item[ 'product_id' ], '_pd_number', true );
// Add the custom field value to order item meta
if( ! empty($pd_number) )
wc_update_order_item_meta( $item_id, '_pd_number', $pd_number );
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
这适用于从2.5.x到3 +的WooCommerce版本。