Wordpress 将自定义产品元数据传递到Woocommerce 4中的订单

Wordpress 将自定义产品元数据传递到Woocommerce 4中的订单,wordpress,woocommerce,Wordpress,Woocommerce,我正在尝试将自定义产品元传递给订单。我可以在管理员中保存自定义产品元,但在签出期间我很难将值保存到订单元。我用的是Woo 4。有人能帮忙吗?谢谢,谢谢 add_action( 'woocommerce_product_options_general_product_data', 'product_meta_create_email_field' ); function product_meta_create_email_field() { $args = array( '

我正在尝试将自定义产品元传递给订单。我可以在管理员中保存自定义产品元,但在签出期间我很难将值保存到订单元。我用的是Woo 4。有人能帮忙吗?谢谢,谢谢

add_action( 'woocommerce_product_options_general_product_data', 'product_meta_create_email_field' );
function product_meta_create_email_field() {
    $args = array(
        'id'            => 'email_estabelecimento',
        'label'         => __( 'Email do Estabelecimento', 'cfwc' ),
        'class'         => 'cfwc-custom-field',
        'desc_tip'      => true,
        'description'   => __( 'Insere aqui o email do estabelecimento.', 'ctwc' ),
    );
    woocommerce_wp_text_input( $args );
}

add_action( 'woocommerce_process_product_meta', 'product_meta_save_email_field' );
function product_meta_save_email_field( $post_id ){
    if( isset( $_POST['email_estabelecimento'] ) )
        update_post_meta( $post_id, 'email_estabelecimento', esc_attr( $_POST['email_estabelecimento'] ) );
}

add_action('woocommerce_checkout_create_order_line_item', 'save_email_as_order_item_meta', 20, 4);
function save_email_as_order_item_meta($item, $cart_item_key, $values, $order) {
    if ( $estabelecimento = $values['data']->get_meta('email_estabelecimento') ) {
        $item->update_meta_data( 'email_estabelecimento', $estabelecimento );
    }
}

你很接近,这里和那里有一个小的调整

//在后端添加自定义字段
功能产品\元\创建\电子邮件\字段(){
$args=数组(
“id”=>“电子邮件地址”,
'label'=>uuu('Email do estabellicimento','cfwc'),
“类”=>“cfwc自定义字段”,
“描述提示”=>正确,
“description'=>”(“Insere aqui o email do estabelecimento.”,“ctwc”),
);
woocommerce_wp_text_输入($args);
}
添加操作('woocommerce\u product\u options\u general\u product\u data'、'product\u meta\u create\u email\u field',10,0);
//保存自定义字段值
功能产品\元\保存\电子邮件\字段($post\ id){
//获得产品
$product=wc\U get\U product($post\U id);
//美元邮政
$email_estabelecemento=isset($_POST['email_estabelecemento'])?$_POST['email_estabelecemento']:'';
//更新元数据
$product->update_meta_data('email_estabelecimento',esc_attr($email_estabelecimento));
//拯救
$product->save();
}
添加操作('woocommerce\u process\u product\u meta'、'product\u meta\u save\u email\u field',10,1);
//在商业订单和电子邮件确认中显示自定义字段
功能将电子邮件另存为订单商品元($item、$cart\item\key、$values、$order){
$email_estabelecimento=$values['data']->get_meta('email_estabelecimento');
如果(isset($email_estabelecemento)){
$item->update_meta_data('email_estabelecimento',$email_estabelecimento);
}
}
添加操作('woocommerce\u checkout\u create\u order\u line\u item','save\u email\u as\u order\u item\u meta',20,4);