我有一个Wordpress网站,我大多数时间都会接到人们的电话来下订单。我的问题是,当我去Woocommerce“添加订单”时,我不知道该客户端是否已经存在,除非我输入他的名字。我有人说他们的名字是“迈克”,下次是“迈克尔”等,所以我把他列在我的名单上2次。与其他名字一样发生。我也使用“按订单创建客户”插件,如果客户端不存在,我会在那时创建他。
所以我的问题是:在点击“添加订单”之后,有没有办法在“客户”字段中添加代码,这样我就可以通过他的电话号码而不是他的名字搜索一个人?
答案 0 :(得分:1)
默认情况下,WordPress只允许您通过用户名/ nicename搜索用户。您当然可以构建它,并能够按名字,姓氏,电子邮件地址和用户元表中已存在的任何自定义用户元字段进行搜索。
看看他们是如何构建这个插件的: Woocommerce - Better User Search
他们用来匹配用户的主要查询看起来像这样:
$user_ids = $wpdb->get_col( $sql = $wpdb->prepare( "
SELECT user_id
FROM (" . implode( 'UNION ALL', array_fill( 0, count( $terms ), "
SELECT DISTINCT u.ID AS user_id
FROM {$wpdb->users} u
INNER JOIN {$wpdb->usermeta} um
ON um.user_id = u.ID
INNER JOIN {$mktable} mk
ON mk.meta_key = um.meta_key
WHERE LOWER(um.meta_value) LIKE %s
OR LOWER(u.user_login) LIKE %s
OR LOWER(u.user_nicename) LIKE %s
OR LOWER(u.user_email) LIKE %s
OR LOWER(u.user_url) LIKE %s
OR LOWER(u.display_name) LIKE %s
" ) ) . ") AS user_search_union
GROUP BY user_id
HAVING COUNT(*) >= %d;
", $values ) );
看看他们的源代码,评论很好并根据您的需要进行调整(如果您只想使用手机),这非常简单。只需从better-user-search.php获取相关内容并将其导入主题functions.php,或者从他们的工作中创建自己的插件。