首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Woocommerce中,将自定义字段值作为电子邮件订单汇总表中的新行插入

在Woocommerce中,将自定义字段值作为电子邮件订单汇总表中的新行插入
EN

Stack Overflow用户
提问于 2018-08-16 13:05:55
回答 3查看 1.3K关注 0票数 2

我在帮我妈妈为她的丹麦商店创建网站。一切都很顺利,但现在我遇到了一个问题。我需要能够使定制字段在订单完整的电子邮件,其中显示一个跟踪和跟踪号码,我已插入管理订单页面。到目前为止,我所做的一切都没有起作用,所以我寻求你的帮助。

我已经添加了一个名为Track & Trace Pakkenr.的自定义字段(请参见屏幕截图1),但问题是在发货(forsendelse中为丹麦语,请参见屏幕截图2)下按顺序完成电子邮件。

我也是一个完整的,完全的初学者在编码,所以如果你们中的任何人可以提供任何帮助或建议,请使它几乎万无一失的遵循。

这是截图1截图2

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-16 13:46:08

若要在电子邮件通知中的order总计表中显示此order自定义字段值,请使用以下命令:

代码语言:javascript
复制
add_filter( 'woocommerce_get_order_item_totals', 'insert_custom_line_order_item_totals', 10, 3 );
function insert_custom_line_order_item_totals( $total_rows, $order, $tax_display ){
    // Only on emails notifications
    if( is_wc_endpoint_url() ) return $total_rows; // Exit

    $tracking_label = 'Track & Trace Pakkenr.'; // The tracking label name
    $tracking_value = $order->get_meta( $tracking_label ); // Get the tracking value (custom field).

    if( empty($tracking_value) ) return $total_rows; // Exit

    $new_total_rows  = array(); // Initializing

    // Loop through total rows
    foreach( $total_rows as $key => $value ){
        if( 'payment_method' == $key && ! empty($tracking_value) ) {
            $new_total_rows['tracking_parcel'] = array(
                'label' => $tracking_label,
                'value' => $tracking_value,
            );
        }
        $new_total_rows[$key] = $total_rows[$key];
    }

    return sizeof($new_total_rows) > 0 ? $new_total_rows : $total_rows;
}

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

你会得到这样的东西:

由此:

票数 5
EN

Stack Overflow用户

发布于 2018-08-16 13:11:05

您可以将自定义字段添加到订单电子邮件中,您需要使用字段键,其中代码具有meta_key

代码语言:javascript
复制
/**
 * Add a custom field (in an order) to the emails
 */
add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );

function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
    $fields['meta_key'] = array(
        'label' => __( 'Label' ),
        'value' => get_post_meta( $order->id, 'meta_key', true ),
    );
    return $fields;
}

参考文献:https://docs.woocommerce.com/document/add-a-custom-field-in-an-order-to-the-emails/

票数 0
EN

Stack Overflow用户

发布于 2018-08-16 13:15:22

下面是一个简单而实用的示例,它将自定义元字段添加到订单电子邮件中

代码语言:javascript
复制
add_filter( 'woocommerce_email_order_meta_fields', 'woocommerce_email_order_meta_fields_func', 10, 3 );

function woocommerce_email_order_meta_fields_func( $fields, $sent_to_admin, $order ) {

    $fields['Track_Field'] = array(
        'label' => __( 'Track', 'woocommerce' ),
        'value' => wptexturize( get_post_meta( $order->id, 'Track_Field', true ) )
    );


    //... more meta fields goes here

    return $fields;
}

在电子邮件后订购电子邮件表:

代码语言:javascript
复制
add_action( 'woocommerce_email_after_order_table', 'woocommerce_email_after_order_table_func' );
function woocommerce_email_after_order_table_func( $order ) {
    ?>

    <h3>Track</h3>
    <table>
        <tr>
            <td>Track Fields </td>
            <td><?php echo wptexturize( get_post_meta( $order->id, 'Track_Field', true ) ); ?></td>
        </tr>

        <!--additional custom meta and HTML code goes here-->
    </table>

    <?php
}

有关更多帮助,请参阅此链接:单击此处

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51877811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档