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

道尔顿

我最近在基于WooCommerce的网站上添加了一些代码,以在“编辑订单”页面上显示每个订单的运输方式和价格。现在,我想尝试将那些相同的字段添加到发送给管理员的“新订单”电子邮件模板中。到目前为止,这是我得到的:

// Capture the available shipping methods, and costs: 
function action_woocommerce_checkout_update_order_meta( $order_id ) {
    // Get shipping packages
    $packages = WC()->shipping()->get_packages();
    
    // Set array
    $rate_labels = array();
    $rate_costs = array();
    
    // Loop through packages
    foreach ( $packages as $key => $package ) {
        // Loop through package rates
        foreach( $package['rates'] as $rate_id => $rate ) {
            // Push to array
            $rate_labels[] = $rate->get_label();
            $rate_costs[] = $rate->get_cost();
        }
    }

    // NOT empty
    if ( ! empty ( $rate_labels ) ) {
        // Update post meta
        update_post_meta( $order_id, '_available_shipping_methods', $rate_labels );
        update_post_meta( $order_id, '_available_shipping_method_cost', $rate_costs );
    }
}
add_action( 'woocommerce_checkout_update_order_meta', 'action_woocommerce_checkout_update_order_meta', 10, 1 ); 

// Make it display on the edit order page:
function action_woocommerce_admin_order_data_after_shipping_address( $order ) {
    // Get meta
    $rate_labels = $order->get_meta( '_available_shipping_methods' );
    $rate_costs = $order->get_meta( '_available_shipping_method_cost' );
    
    $methods = array ( $rate_labels, $rate_costs );
    
    // True
    if ( $rate_labels ) {
        // Loop
        echo '<p><strong>Shipping Methods: </strong>';
        foreach(array_combine($rate_labels, $rate_costs) as $rate_label => $rate_cost) {
             echo '<p>' . $rate_label . ' - $' . $rate_cost . '</p>';
        }
    }
    
}
add_action( 'woocommerce_admin_order_data_after_shipping_address', 'action_woocommerce_admin_order_data_after_shipping_address', 10, 1 );

除此之外,这就是我一直在努力的工作,到目前为止没有运气:

// Add it to the new order email template 
add_filter( 'woocommerce_new_order', 'custom_woocommerce_email_order_meta_fields', 10, 3 );

function custom_woocommerce_email_order_meta_fields( $rate_labels, $sent_to_admin, $order ) {
    
    $rate_labels = $order->get_meta( '_available_shipping_methods' );
    $rate_costs = $order->get_meta( '_available_shipping_method_cost' );
    
    $methods = array ( $rate_labels, $rate_costs );
    
    if ( $rate_labels ) {
        // Loop
        echo '<p><strong>Shipping Methods: </strong>';
        foreach(array_combine($rate_labels, $rate_costs) as $rate_label => $rate_cost) {
             echo '<p>' . $rate_label . ' - $' . $rate_cost . '</p>';
        }
    }
}
LoicTheAztec

请改用以下示例:

add_action( 'woocommerce_email_after_order_table', 'wc_email_new_order_custom_meta_data', 10, 4);
function wc_email_new_order_custom_meta_data( $order, $sent_to_admin, $plain_text, $email ){
    // On "new order" email notifications
    if ( 'new_order' === $email->id ){
        $rate_labels = $order->get_meta( '_available_shipping_methods' );
        $rate_costs = $order->get_meta( '_available_shipping_method_cost' );
        
        $methods = array ( $rate_labels, $rate_costs );
        
        if ( $rate_labels ) {
            // Loop
            echo '<p><strong>Shipping Methods: </strong>';
            foreach(array_combine($rate_labels, $rate_costs) as $rate_label => $rate_cost) {
                 echo '<p>' . $rate_label . ' - $' . $rate_cost . '</p>';
            }
        }
    }
}

它应该工作。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

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

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

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

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

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

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

在WooCommerce电子邮件通知上显示自定义产品图片

为特定的Woocommerce电子邮件通知向BCC添加自定义电子邮件

在Woocommerce中的特定电子邮件通知上为特定产品添加自定义文本

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

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

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

在WooCommerce电子邮件订购项目中显示可变产品的产品自定义字段

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

增加WooCommerce电子邮件自定义字段的显示文本大小

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

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

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

在特定的WooCommerce电子邮件上显示产品ACF字段

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

将自定义文本添加到本地取货 Woocommerce 订单的特定电子邮件通知

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

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

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

根据Woocommerce中的用户角色自定义页脚文本电子邮件通知

根据运输方式自定义Woocommerce新订单电子邮件通知