首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >woocommerce在电子邮件中添加自定义结帐字段

woocommerce在电子邮件中添加自定义结帐字段
EN

Stack Overflow用户
提问于 2015-07-18 10:51:09
回答 2查看 11.1K关注 0票数 5

Wordpress - Woocommerce

我想做的事:

  • 在“结帐”页面中添加一些自定义字段。
  • 另外,在收到新订单时,请将这些字段的值发送到我的电子邮件中。

,这就是我所做的,但失败了:

我遵循这里的教程:http://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/

一切顺利,我成功地创建了字段,它们出现在订单设置页面中:

代码语言:javascript
运行
复制
add_action( 'woocommerce_after_order_notes', 'my_checkout_fields' );

function my_checkout_fields( $checkout ) {

echo '<div id="my_checkout_fields"><h2>' . __('My Heading') . '</h2>';

woocommerce_form_field( 'my_field', array(
    'type'      => 'select',
    'options'   => array(
        'option_1' => 'My Option 1',
        'option_2' => 'My Option 2'
    ),
    'clear'     => false,
    'class'         => array('form-row-wide'),
    'label'         => __('Whatever')
    ), $checkout->get_value( 'my_field' ));

echo '</div>';

}

/**
 * Update the order meta with field value
 */
add_action( 'woocommerce_checkout_update_order_meta','my_custom_checkout_field_update_order_meta' );

function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['my_field'] ) ) {
    update_post_meta( $order_id, 'My Field', sanitize_text_field( $_POST['my_field'] ) );
}
}
}

然后,我尝试将它们添加到电子邮件订单元中,如教程中的“第4课”部分所示:

代码语言:javascript
运行
复制
add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');
function my_custom_checkout_field_order_meta_keys( $keys ) {
    $keys[] = 'my_field';
    return $keys;
}

但是,自定义字段不会出现在发送的电子邮件中。

我还尝试通过在电子邮件模板文件中这样做来测试它:

代码语言:javascript
运行
复制
<p><?php echo $order->my_field; ?></p>

电子邮件中没有打印任何内容。

请给我解决办法。提前谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2015-07-19 03:20:55

您应该使用“我的字段”而不是my_field。因为您已经用此键保存了自定义字段。这肯定能解决你的问题。

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31490405

复制
相关文章

相似问题

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