1

我正在使用woocommerce(免费插件).. 我正在尝试向计费字段添加一个自定义字段..

这里是:

// ADDED HOW YOU GOT TO KNOW ABOUT OUR SERVICE FIELD
add_filter( 'woocommerce_checkout_fields' , 'About_Our_Service' );

// Our hooked in function - $fields is passed via the filter!
function About_Our_Service( $fields ) {
     $fields['billing']['billing_meat'] = array(
    'label'       => __('How you Got to Know About Our Service?', 'woocommerce'),
    'placeholder' => _x('', 'placeholder', 'woocommerce'),
    'required'    => false,
    'clear'       => false,
    'type'        => 'select',
    'options'     => array(        
        'google-ads' => __('Google', 'woocommerce' ),
        'google-search' => __('Yahoo', 'woocommerce' ),
        'warrior-forum' => __('Bing', 'woocommerce' ),
        'facebook' => __('Facebook', 'woocommerce' ),
        'other' => __('Other', 'woocommerce' ),
        )
    );

     return $fields;
}

问题是:我没有在我的邮件中获得添加到计费字段的自定义字段的值。任何已经使用过的人都woocommerce可以帮助我...?

我已经创建了一些添加到结帐中的更多自定义字段(但这些字段没有与核心字段一起添加),对于这些字段,我可以在我的邮件中获取值..

顺便说一句,我检查了这个线程:但没有太多与邮件相关的信息..

请有人调查一下这个..

4

2 回答 2

1

对于未来的读者,自定义计费/运输字段将保存为订单发布的发布元数据。所以一般来说,您可以使用典型的 WordPressget_post_meta()功能检索它们。

但是在 WooCommerce 2.2 中,您不需要,因为您可以将字段名称直接传递给 WC 将在电子邮件中显示为列表的字段数组:

// pre-WooCommerce 2.3
function kia_email_order_meta_keys( $keys ) {
    $keys['Some field'] = '_some_field';
    return $keys;
}
add_filter('woocommerce_email_order_meta_keys', 'kia_email_order_meta_keys');

这个方法在 2.3 版本中已经被弃用了,可能这样翻译会更好。从 2.3 开始,您将需要针对不同的过滤器并发送稍微不同的数据。

// WooCommerce 2.3+
function kia_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
    $fields['some_field'] = array(
                'label' => __( 'Some field', 'my-plugin-textdomain' ),
                'value' => get_post_meta( $order->id, '_some_field', true );
            );
    return $fields;
}
add_filter('woocommerce_email_order_meta_fields', 'kia_email_order_meta_keys', 10, 3 );

我写了一个关于自定义 WooCommerce 结帐字段的教程

于 2014-10-08T08:43:32.067 回答
0

我相信法典中的这个答案是专门为此目的的:

http://wcdocs.woothemes.com/snippets/add-a-custom-field-in-an-order-to-the-emails

我自己还没有实现,但这可能是你最好的选择。

于 2012-12-24T17:06:20.343 回答