在WooCommerce订单和电子邮件通知中显示自定义字段值

德米特里

基于“选择WooCommerce交货方式后选择日期和时间”的答案代码,该代码显示自定义的取件字段和交货日期,以下代码在订单编辑页面上显示这些字段的交货数据。

这是我的代码:

// View fields in Edit Order Page
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_fields_order_meta', 10, 1 );
function my_custom_fields_order_meta($order){   

    $delivery_option = $order->get_meta('_delivery_option');

    if( $delivery_option == 'date' ) {
    $delivery_datetime = $order->get_meta('_delivery_datetime');

    echo '<p><strong>'.__('Delivery').':</strong> ' . get_post_meta( $order->id, '_delivery_option', true ) . '</p>';
    echo '<p><strong>'.__('Delivery Date').':</strong> ' . get_post_meta( $order->id, '_delivery_datetime', true ) . '</p>';
    }
}

不幸的是,仅正确显示了客户选择的交货日期,并且未显示“尽快”单选按钮的选项。

显然,我做错了。

我还要在“谢谢”页面和电子邮件中显示这些字段的值。

任何帮助表示赞赏。

LoicTheAztec

要在后端订单编辑页面中显示自定义字段值(如果它们已保存在订单的数据库中),请使用以下命令:

// View fields in Edit Order Page
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_custom_fields_value_admin_order', 10, 1 );
function display_custom_fields_value_admin_order( $order ){
    // Display the delivery option
    if( $delivery_option =  $order->get_meta('_delivery_option') )
        echo '<p><strong>'.__('Delivery type').':</strong> ' . $delivery_option . '</p>';

    // Display the delivery date
    if( $delivery_datetime = $order->get_meta('_delivery_datetime') )
        echo '<p><strong>'.__('Delivery Date').':</strong> ' . $delivery_datetime . '</p>';
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。

在此处输入图片说明


前端订单页面电子邮件通知上的任何地方显示自定义字段值的最好的简短方法是在订单总计表中显示它们,就像使用的付款方式一样:

// Display the chosen delivery information
add_filter( 'woocommerce_get_order_item_totals', 'chosen_delivery_item_order_totals', 10, 3 );
function chosen_delivery_item_order_totals( $total_rows, $order, $tax_display ) {;
    $new_total_rows = [];

    // Loop through Order total lines
    foreach($total_rows as $key => $total ){
        // Get the chosen delivery values
        $delivery_option  = $order->get_meta('_delivery_option');
        $delivery_datetime = $order->get_meta('_delivery_datetime');

        // Display delivery information before payment method
        if( ! empty($delivery_option) && 'payment_method' === $key ){
            $label  = empty($delivery_datetime) ? __('Delivery') : __('Delivery Date');
            $value  = empty($delivery_datetime) ? __('AZAP', $domain) : $delivery_datetime;

            // Display 'Delivery method' line
            $new_total_rows['chosen_delivery'] = array( 'label' => $label,'value' => $value );
        }
        $new_total_rows[$key] = $total;
    }

    return $new_total_rows;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。

在此处输入图片说明


相关主题: 选择WooCommerce交付方式后选择日期和时间

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

订单自定义字段未显示在WooCommerce电子邮件通知中

在Woocommerce订单和电子邮件中显示产品变体的自定义字段

在Woocommerce管理员,订单和电子邮件中显示自定义付款字段

在Woocommerce管理员电子邮件通知中显示产品自定义字段值

获取要在 Woocommerce 电子邮件通知中显示的自定义字段值

在WooCommerce订单和电子邮件通知上显示自定义交货通知

在订单电子邮件通知中输出产品自定义字段值

自定义WooCommerce datepicker检出字段已保存并显示在订单和电子邮件中

WooCommerce 订单电子邮件中未显示自定义电话号码字段

在woocommerce订单电子邮件中显示多个产品的自定义字段

Woocommerce新订单电子邮件通知中的自定义“回复”电子邮件标题

在电子邮件通知上显示WooCommerce自定义结帐字段值

在WooCommerce电子邮件通知中为管理员显示自定义字段

如何在woocommerce中的新订单电子邮件中显示高级自定义字段数据

仅在 Woocommerce 中针对本地运输和已完成订单的自定义电子邮件通知

在Woocommerce订单和电子邮件中的订单总数之后添加自定义文本

在Woocommerce中的电子邮件订单总计表上的新行中插入自定义字段值

在WooCommerce中自定义订单状态更改时发送电子邮件通知

在WooCommerce订单和电子邮件中添加和显示自定义购物车项目数据

在WooCommerce的电子邮件和订单页面中保存并显示产品自定义数据

在WooCommerce“订单已完成”电子邮件中添加自定义产品字段

WooCommerce电子邮件上的订单自定义字段中的替换收件人

WooCommerce:使用自定义电子邮件通知添加自定义订单状态

在特定的WooCommerce电子邮件通知上显示自定义字段

在WooCommerce电子邮件通知上显示第二个自定义字段

仅对WooCommerce管理员电子邮件通知显示自定义字段

如何在新订单电子邮件中显示WooCommerce自定义产品元?

根据Woocommerce电子邮件通知中的送货方式显示自定义内容

电子邮件,管理员订单和“谢谢”页面上的WooCommerce 4.0自定义结帐和ACF字段值