【发布时间】:2016-06-21 10:48:54
【问题描述】:
我在结账时添加了一个自定义字段,我想让它成为可搜索的,以便使用它来搜索订单。 该字段是手机,目前的代码是:
function custom_admin_billing_fields( $fields ) {
global $post;
$order = $post->ID;
$fields['phone']['show'] = false;
$fields['mobile'] = array(
'label' => __( 'Mobile', 'bootstrap' ),
'value'=>get_post_meta( $order, '_billing_mobile', true ),
'show' => true
);
return $fields;
}
add_filter( 'woocommerce_admin_billing_fields', 'custom_admin_billing_fields',10,1 );
function custom_admin_shipping_fields( $fields ) {
global $post;
$order = $post->ID;
$fields['phone']['show'] = false;
$fields['mobile'] = array(
'label' => __( 'Mobile', 'bootstrap' ),
'value'=>get_post_meta( $order, '_shipping_mobile', true ),
'show' => true
);
return $fields;
}
add_filter( 'woocommerce_admin_shipping_fields', 'custom_admin_shipping_fields', 11, 1);
function woocommerce_shop_order_search_order_total( $search_fields ) {
$search_fields[] = '_billing_mobile';
$search_fields[] = '_shipping_mobile';
return $search_fields;
}
add_filter( 'woocommerce_shop_order_search_fields', 'woocommerce_shop_order_search_order_total' );
搜索不适用于手机,虽然它适用于默认字段
以及前端的代码(结帐)
function custom_woocommerce_shipping_fields($fields) {
$fields['shipping_phone'] = array(
'label' => __('Phone', 'woocommerce'),
'placeholder' => __('Phone', 'woocommerce'),
'required' => false,
'class' => array('form-row-last'),
);
$fields['shipping_mobile'] = array(
'label' => __('Mobile Phone', 'bootstrap'),
'placeholder' => __('Mobile Phone', 'bootstrap'),
'required' => true,
'clear' => true,
'class' => array('form-row'),
);
return $fields;
}
add_filter( 'woocommerce_shipping_fields', 'custom_woocommerce_shipping_fields');
function custom_woocommerce_billing_fields( $fields ) {
$fields['billing_phone']['required'] = false;
$fields['billing_mobile'] = array(
'label' => __('Mobile Phone', 'bootstrap'),
'placeholder' => __('Mobile Phone', 'bootstrap'),
'required' => true,
'clear' => true,
'class' => array('form-row-last'),
);
return $fields;
}
add_filter( 'woocommerce_billing_fields', 'custom_woocommerce_billing_fields' );
【问题讨论】:
-
更新帖子包括前端代码
-
不,但它们在管理订单面板中看起来很好,所以我认为它们没问题
-
有关信息,这是 sarakinos 发现的 WooCommerce 中的一个 BUG:“它正在将搜索值转换为int 所以它们不能超过 10 位。错误已修补。肮脏的解决方案通过将 wc_order_search 中的 %%%d%% 更改为 %%%s%% 来改变 woocommerce 核心,或者等到补丁应用于生产版本“...跨度>
-
问题解决了没有?我也在寻找通过自定义字段值进行订单搜索的解决方案
标签: php wordpress woocommerce