返回

WooCommerce手动订单页面如何搜索手机号?

php

WooCommerce手动订单页面无法搜索手机号?试试这个解决方案!

在使用WooCommerce处理订单时,我们常常需要根据客户信息快速找到对应的订单。WooCommerce自带搜索功能,但默认情况下仅支持用户名、邮箱和姓名搜索,不支持手机号搜索,这在实际操作中可能会带来不便。本文将提供一种解决方案,让你能够在WooCommerce手动订单页面直接搜索客户手机号,提升订单处理效率。

你是否也曾遇到过这样的情况:在WooCommerce后台创建手动订单时,想要根据客户手机号查找订单,却发现系统不支持?你尝试过网上的各种代码片段,但都以失败告终?别担心,你不是一个人!

WooCommerce默认的搜索功能确实没有包含客户手机号。但这并不意味着我们束手无策。通过添加一些自定义代码,我们可以轻松实现这一功能。

以下是一种可行的解决方案:

/**
 * 为WooCommerce手动订单页面添加手机号搜索功能
 */
function custom_woocommerce_customer_search_by_phone( $search_fields ) {
  // 将 '_billing_phone' 和 '_shipping_phone' 添加到搜索字段数组中
  $search_fields[] = '_billing_phone';
  $search_fields[] = '_shipping_phone';
  return $search_fields;
}
add_filter( 'woocommerce_shop_order_search_fields', 'custom_woocommerce_customer_search_by_phone' );

/**
 * 修改Select2搜索框以包含电话号码
 */
add_action( 'admin_footer', 'modify_customer_search_select2' );
function modify_customer_search_select2() {
  // 只在手动订单页面加载
  if ( ! is_admin() || ! isset( $_GET['post_type'] ) || 'shop_order' !== $_GET['post_type'] ) {
    return;
  }
  ?>
  <script>
    jQuery(document).ready(function($) {
      $(document).on('select2:open', '.wc-customer-search', function() {
        // 修改占位符以提示用户可以按姓名或电话号码搜索
        $('.select2-search__field').attr('placeholder', '搜索姓名、邮箱或电话号码…');
      });
    });
  </script>
  <?php
}

这段代码主要实现了两个功能:

  1. 添加搜索字段: custom_woocommerce_customer_search_by_phone 函数将 _billing_phone(账单手机号)和 _shipping_phone(配送手机号)添加到了WooCommerce的订单搜索字段列表中,使得系统在搜索时会将这两个字段也纳入考虑范围。
  2. 修改搜索框提示: modify_customer_search_select2 函数修改了搜索框的占位符文本,提示用户可以使用姓名、邮箱或电话号码进行搜索,优化用户体验。

将这段代码添加到你主题的 functions.php 文件中,或者使用代码 snippets 插件将其添加到你的网站中。

完成以上操作后,你就可以在WooCommerce手动订单页面直接搜索客户手机号了。这将大大提高你处理订单的效率,尤其是在需要根据手机号快速查找订单的情况下。

常见问题解答

  1. 添加代码后,搜索功能没有生效怎么办?

    • 首先,请确保代码已正确添加到 functions.php 文件或代码片段插件中。
    • 其次,尝试清除浏览器缓存或使用其他浏览器访问网站,以确保代码更改已生效。
    • 如果问题仍然存在,请检查是否存在插件冲突,尝试禁用其他插件后再次测试。
  2. 能否添加其他自定义字段进行搜索?

    • 可以。你可以修改 custom_woocommerce_customer_search_by_phone 函数,将需要添加的自定义字段名添加到 $search_fields 数组中。
  3. 这段代码会对网站性能造成影响吗?

    • 这段代码的性能影响微乎其微。它只在手动订单页面加载,并且只进行简单的数组操作和文本修改。
  4. 如何还原默认的搜索功能?

    • 你可以直接删除添加到 functions.php 文件或代码片段插件中的代码,即可还原默认的搜索功能。
  5. 这段代码适用于所有版本的WooCommerce吗?

    • 这段代码已经过测试,可以兼容大多数版本的 WooCommerce。但是,为了确保兼容性,建议在更新 WooCommerce 版本后进行测试。