2016-08-03 62 views
1

我试图在woocommerce结算部分添加一个附加字段。我想在“名称”字段之前显示“标题”字段。woocommerce附加结算字段

我已经试过这样:

// Add a new checkout field 
    function custom_filter_checkout_fields($fields){ 
    $fields['billing_title_field'] = array(
     'some_field' => array(
      'type' => 'text', 
      'required'  => true, 
      'label' => __('Some field') 
      ) 
     ); 

    return $fields; 
} 
    add_filter('woocommerce_checkout_fields', 'custom_filter_checkout_fields' ); 

然后

function order_fields($fields) { 

$order = array(
"billing_title_field", 
"billing_first_name", 
"billing_last_name", 
"billing_email", 
"billing_phone", 
"billing_country", 
"billing_address_1", 
"billing_address_2", 
"billing_postcode", 
"billing_company" 
); 

foreach($order as $field) 
{ 
    $ordered_fields[$field] = $fields["billing"][$field]; 
} 

$fields["billing"] = $ordered_fields; 
return $fields; 

}

但这返回我没有现场我在第一步中创建。我清楚地知道我错过了这个过程的一个非常重要的部分,但我无法弄清楚究竟是什么。在互联网上搜索没有成功(提供的方法是在计费字段之前或之后添加字段,我需要将它添加到计费字段组中)。

任何帮助表示赞赏!提前致谢!

回答

0

所以我想我找到了答案。其实在第一段代码中,我错过了一件重要的事情。这应该看起来像这样:

function custom_filter_checkout_fields($fields){ 
    $fields['billing']['billing_title_field'] = array(
     'some_field' => array(
     'type' => 'text', 
     'required'  => true, 
     'label' => __('Some field') 
     ) 
    ); 

return $fields; 
} 
add_filter('woocommerce_checkout_fields', 'custom_filter_checkout_fields'); 

然后第二段代码将创建的字段设置到正确的位置。