Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取Woocommerce中“计费公司”的所有客户数_Php_Wordpress_Curl_Woocommerce_Woocommerce Rest Api - Fatal编程技术网

Php 获取Woocommerce中“计费公司”的所有客户数

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();

我有一个Woocommerce的Wordpress网站,对于我的报告,我需要知道我有多少专业知识

由于Woocommerce不提供此信息,我需要自己获取,但我无法手动计数

所以我决定使用Woocommerce Rest Api来获取信息

我试图找到所有填写账单公司字段的客户

我使用php curl发出请求,并以如下方式开始我的代码:

//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表…