2012-09-27 65 views
5

我添加额外的字段在WooCommerce结帐页面, 我已经添加了基本的文本字段确定,但我希望有一个下拉菜单或选择框有几个选项, 这里是我到目前为止,但我做了已经在某处发生了错误如何添加一个选择自定义字段到WooCommerce结账页面?

$fields['billing']['billing_meat'] = array(
    'label'  => __('Food options', 'woocommerce'), 
'placeholder' => _x('', 'placeholder', 'woocommerce'), 
'required' => false, 
'clear'  => false 
'type' => 'select', 

'options' => array(     // array of key => value pairs for select options 
      __('I eat meat', 'woocommerce') => __('I eat mate', 'woocommerce'), 
      __('meat is gross', 'woocommerce') => __('meat is gross', 'woocommerce'), 

也许我没有正确定义'type'字段?

由于负载

回答

8

如果这是你确切的代码,那么问题是,你'clear' => false后缺少一个逗号。

我测试过这一点,它的工作原理:

$fields['billing']['billing_meat'] = array(
    'label'  => __('Food options', 'woocommerce'), 
    'placeholder' => _x('', 'placeholder', 'woocommerce'), 
    'required' => false, 
    'clear'  => false, 
    'type'  => 'select', 
    'options'  => array(
     'eat-meat' => __('I eat maet', 'woocommerce'), 
     'not-meat' => __('Meat is gross', 'woocommerce') 
     ) 
    ); 

请注意,我还没有上的选项数组键使用__()。最好不要翻译这些。

+0

感谢工作一种享受 – stevie

5

这是工作。这是我的代码

// Hook in 
add_filter('woocommerce_checkout_fields' , 'dropdown'); 

// Our hooked in function - $fields is passed via the filter! 
function dropdown($fields) { 
    $fields['billing']['dropdown'] = array(
     'label'  => __('dropdown', 'woocommerce'), 
    'placeholder' => _x('dropdown', 'placeholder', 'woocommerce'), 
    'required' => false, 
    'class'  => array('form-row-wide'), 
    'clear'  => true, 
    'type'  => 'select', 
    'options'  => array(
     'option 1' => __('option 1', 'woocommerce'), 
     'option 2' => __('option 2', 'woocommerce') 
     )//end of options 
    ); 

    return $fields; 
} 

This works。但似乎该值不会在_billing_dropdown下保存。我使用“管理列”插件在订单表(管理端)添加一个字段。在我的自定义字段“下拉列表”中,没有值显示。我在哪里可以检索该值?我的另一个自定义字段“目的”在“_billing_purpose”下,并且是type =>'textarea'。谢谢!

这里是截图 https://scontent-b-hkg.xx.fbcdn.net/hphotos-xpf1/v/t1.0-9/10696182_985415141473105_5302358697439449940_n.jpg?oh=74cb5ebc6b1ad6dd0c29e51293b61fdf&oe=5502613C

+0

我知道这是一个古老的线程,但因为你似乎并没有得到你要找的答案,你需要更新的顺序元字段值。以下是如何做到这一点: /** * 与更新字段值的顺序元 */ ADD_ACTION( 'woocommerce_checkout_update_order_meta', 'dropdown_update_order_meta'); \t 功能dropdown_update_order_meta($ ORDER_ID){ 如果(!空($ _ POST [ '下拉'])){ \t update_post_meta($ ORDER_ID, '你如何找到我们',sanitize_text_field($ _ POST [ '下拉']) ); }} –

相关问题