当前位置: 首页 > 知识库问答 >
问题:

WooCommerce在管理订单详细信息上显示自定义字段数据

子车心思
2023-03-14

我正在使用一个自定义的结帐字段,在我的woocommerce商店的结帐页面上为我的客户提供一个“发送到业务地址”选项。大部分代码工作正常,但我无法显示他们是否选中了后端管理订单详细信息中的复选框。

我已经添加了一个自定义结账字段到我的WooCommerce商店,并将数据保存到订单元:

//add custom checkout field
add_filter( 'woocommerce_after_checkout_billing_form', 'gon_business_address_checkbox_field' );

function gon_business_address_checkbox_field( $checkout ){
    woocommerce_form_field( 'business_address_checkbox', array(
        'label'       => __('<h3 id="business_address_label">Check this box if you are shipping to a business.</h3>', 'woocommerce'),
        'required'    => false,
        'clear'       => false,
        'type'        => 'checkbox'
    ), $checkout->get_value( 'business_address_checkbox' ));
}


//update order meta
add_action('woocommerce_checkout_update_order_meta', 'gon_update_order_meta_business_address');

function gon_update_order_meta_business_address( $order_id ) {
    if ($_POST['business_address_checkbox']) update_post_meta( $order_id, 'Business Address?', 
    esc_attr($_POST['business_address_checkbox']));
}

这里是我试图在管理命令部分显示这些数据的地方。我已经尽可能地关注了前面关于这方面的话题,但没有任何效果。

// Display field value on the admin order edit page
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order){
    echo '<p><strong>'.__('Ship to a Business Address', 'woocommerce').': </strong> ' . get_post_meta( $order->get_id(), '_business_address_checkbox', true ) . '</p>';
}

这个问题是否可能是因为我没有以正确的方式使用复选框?奇怪的是,通过使用以下代码,我可以根据自己的意愿在订单电子邮件上打印信息:

add_filter( 'woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys' );
function my_custom_checkout_field_order_meta_keys( ) {
    if($_POST['business_address_checkbox']){
        $ship_to = 'YES';
    } else {
        $ship_to = 'NO';
    }
    echo '<h3>Ship to a business address? : '.$ship_to.'</h3>';
}

共有1个答案

通博实
2023-03-14

保存此自定义字段数据时,请使用meta_键“业务地址”…因此,您需要使用此meta_键以以下方式检索数据:

// Display field value on the admin order edit page
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'custom_checkout_field_display_admin_order_meta', 10, 1 );
function custom_checkout_field_display_admin_order_meta( $order ){
    $business_address = get_post_meta( $order->get_id(), 'Business Address?', true );
    if( ! empty( $business_address ) )
        echo '<p><strong>'.__('Ship to a Business Address', 'woocommerce').': </strong> ' . $business_address . '</p>';
}

代码function.php活动子主题(或主题)的文件或任何插件文件中。

在WooCommerce 3和works上测试。

 类似资料:
  • 我正在搜索和尝试它2天没有成功,请帮助。 我想筛选woocommerce订单,以便根据产品属性将其他详细信息从db添加到订单详细信息页面,但我找不到适合此任务的woocommerce操作/筛选器挂钩。这里假设变量; 如果,那么我需要将自定义数据从数据库添加到订单详细信息页面。 注意:我不想添加额外的元框,而是想更改订单明细表: 将默认产品映像替换为存储在数据库和中的映像, 在产品名称下面添加包含自

  • 我使用以下代码在WooCommerce管理订单详细信息页面的订单项表中显示自定义产品元: 它显示“前缀tempiconsegna”,这是自定义图元,如: 可在3天内提供 我的问题是,如果我改变了产品的可用性,它也改变了以前的订单。 当我更新产品的可用性时,如何在不改变的情况下显示订单时的值?

  • 但这给了我添加列中的“未定义变量”错误。 如果我只将放入函数中,它将“rechnung beilegen”输出到my_column_id_2中的每一行。像这样: 因此,问题是:如何根据中的选择将输出转换为?

  • 使用以下代码,我可以在WooCommerce产品上获得一个自定义字段,但是如何在订单、结帐和管理订单(后端)上显示它呢? 这是我在每个产品上的自定义字段 这是我的管理订单(后端)详细信息。我尝试显示我在每个产品帖子中输入的正确元数据。 如何在管理订单中显示我在自定义字段中输入的值?我也希望有人能帮助我显示在订单和结帐页面的元。。。或者引导我走向正确的方向。我意识到,为了在管理订单中显示它,我必须确

  • 上次WooCommerce更新后,订单详细信息不再显示在感谢页面上。从那时起,我使用WooCommerce Storefront主题开发了一个儿童主题。不管我做了什么,我看到的只是感谢页面上的“谢谢”信息。 到目前为止我所尝试的: > 对整个进程进行故障排除,以查找任何可能出错的问题。这包括以下内容: 检查了调用order-details模板和it相关操作挂钩的wc模板函数(均存在) 确保我的Ch

  • 基于“在购物车和订单项名称下显示伍兹商业产品自定义字段”回答我以前的一个问题,代码在产品编辑页面上显示自定义字段。当填写这些字段时,数据将显示在产品页面上。 下面是代码: 如何在“管理”面板的“编辑订单”页面上显示自定义字段?它应该在产品名称后显示这些字段。 更新 据我所知,woocommerce\u checkout\u create\u order\u line\u item对此负责。但我无法