Php 管理员按自定义字段搜索商业订单

Php 管理员按自定义字段搜索商业订单,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我已经在我的结帐中添加了一个自定义字段,我想让它可以搜索,以便通过使用它来搜索订单。 字段为手机,目前代码为: function custom_admin_billing_fields( $fields ) { global $post; $order = $post->ID; $fields['phone']['show'] = false; $fields['mobile'] = array( 'label' => __( 'Mob

我已经在我的结帐中添加了一个自定义字段,我想让它可以搜索,以便通过使用它来搜索订单。 字段为手机,目前代码为:

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' );
搜索对手机不起作用,尽管它对默认字段很有效

以及前端的代码(签出)


我们同样需要通过“跟踪代码”(来自AST插件)查找订单

以下是在搜索中添加自定义列(插入到functions.php中)的代码:

结果:


希望有帮助。

我们也有同样的需求,通过“跟踪代码”(来自AST插件)查找订单

以下是在搜索中添加自定义列(插入到functions.php中)的代码:

结果:


希望有帮助。

更新了帖子,包括前端代码否,但它们在管理命令面板中显示良好,因此我认为它们可以提供信息,这是sarakinos发现的WooCommerce中的一个BUG:“它将搜索值强制转换为int,这样它们就不能超过10位。虫子打了补丁。脏解决方案通过在wc\u order\u搜索中将%%d%%更改为%%s%%来更改woocommerce核心,或者等待修补程序应用于生产版本“……问题是否得到解决?我也在寻找通过自定义文件值搜索订单的解决方案更新了帖子,包括前端代码否,但它们在管理订单面板中显示良好,因此我认为它们可以获取信息,这是sarakinos在WooCommerce中发现的一个BUG:“它将搜索值强制转换为int,这样它们就不能超过10位。虫子打了补丁。脏解决方案通过在wc_order_search中将%%d%%更改为%%s%%来更改woocommerce core,或者等待修补程序应用于生产版本“…问题是否解决?我还通过自定义字段值寻找订单搜索的解决方案
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' );
function woocommerce_shop_order_search_order_tracking_code($search_fields) { 
    $search_fields[] = '_woocommerce-advanced-shipment-tracking'; 
    return $search_fields;
}
add_filter('woocommerce_shop_order_search_fields', 'woocommerce_shop_order_search_order_tracking_code');