Php 获取Woocommerce中“计费公司”的所有客户数
我有一个Woocommerce的Wordpress网站,对于我的报告,我需要知道我有多少专业知识 由于Woocommerce不提供此信息,我需要自己获取,但我无法手动计数 所以我决定使用Woocommerce Rest Api来获取信息 我试图找到所有填写账单公司字段的客户 我使用php curl发出请求,并以如下方式开始我的代码:Php 获取Woocommerce中“计费公司”的所有客户数,php,wordpress,curl,woocommerce,woocommerce-rest-api,Php,Wordpress,Curl,Woocommerce,Woocommerce Rest Api,我有一个Woocommerce的Wordpress网站,对于我的报告,我需要知道我有多少专业知识 由于Woocommerce不提供此信息,我需要自己获取,但我无法手动计数 所以我决定使用Woocommerce Rest Api来获取信息 我试图找到所有填写账单公司字段的客户 我使用php curl发出请求,并以如下方式开始我的代码: //URL $url = '<...>/wp-json/wc/v2/customers'; //REQUEST $ch = curl_init();
//URL
$url = '<...>/wp-json/wc/v2/customers';
//REQUEST
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$result = curl_exec($ch);
curl_close($ch);
$json = json_decode($result, true);
print_r($json);
我有两个问题:
不能得到所有的顾客
无法获取帐单公司变量
有办法吗
谢谢为什么不在WooCommerce>Reports>Customers中添加一个自定义子选项卡,其中的名字将是专业人士。在此自定义选项卡中,您可以轻松获得拥有计费公司的客户数 代码是:
// Add a custom sub-tab to customer tab WooCommerce reports
add_filter( 'woocommerce_admin_reports', 'admin_report_customer_pro_section', 10, 1 );
function admin_report_customer_pro_section( $reports ){
$reports['customers']['reports']['customer_pro'] = array(
'title' => __( 'Professionals', 'woocommerce' ),
'description' => '',
'hide_title' => true,
'callback' => 'content_admin_report_customer_pro',
);
return $reports;
}
// The content of the customer custom sub-tab
function content_admin_report_customer_pro(){
// Get all Customers
$customers = get_users( array( 'role' => 'customer'));
$count = 0;
// Iterating through each customer in the array
foreach ($customers as $customer) {
// Count professional customers that have a billing company
if( ! empty( $customer->billing_company ) ) $count++;
}
// Output the count
echo '<div style="background-color:white; padding:8px 20px;"><p>'.__( 'Number of Professionals (with a company): ', 'woocommerce' ) . '<strong style="display:inline-block;background-color:#9c5d90; padding:0 10px; color:white;">' . $count . '</strong></p></div>';
}
代码位于活动子主题或主题的function.php文件中,或者位于任何插件文件中
经过测试,效果良好……您将获得:
嗨,我没想到会这样,那样更好。谢谢你的提示!不管怎样,我试过了,但我对这个数字有怀疑。我有1084个客户,当我输入您的代码时,我看到314个,我使用您的代码进行反向更改!=我得到379分。总数不是1084 O_O@LoicTheAztec,我尝试了sql请求,是的,也是314。我还试着从wp_usermeta中选择*,其中meta_键如“billing_company”列出所有使用此meta的客户,我只得到了693,所以是379+314。Woocommerce从那以后更改了他的数据库吗?似乎这个SQL请求只适用于新的woocommerce数据库。我有391个客户,我不知道他们的状态:/@Efbi我已经用一些新代码更新了我的答案,而不是SQL查询…这次它应该能按预期工作…尝试一下,让我知道。谢谢…我也尝试过WP_查询,也尝试过过滤get_用户查询,但没有成功。它与以前的SQL查询完全相同…很好,谢谢!我认为这是可行的,我有313名专业人士和772名其他人士,所以总数是好的?仅供参考,get_用户查询仅限于Wordpress meta,或者还包括woocommerce客户属性meta?比如说,是不是在向客户付费?@Efbi我认为get\u users元查询仅限于wp\u usermeta表…