WooCommerce订阅 - 获取活动订阅者信息以显示在表格中

时间:2017-08-29 05:05:18

标签: php sql wordpress woocommerce woocommerce-subscriptions

我正在使用Woocommerce订阅,我想生成一个表格,显示所有活跃订阅者及其相关用户信息。以下代码只是拉起所有用户...有关如何正确执行此操作的任何想法?谢谢! :)

127.0.0.1 example.com another-example.com yet-another-example.com

1 个答案:

答案 0 :(得分:2)

您可以通过这种方式使用自定义SQL查询(已更新)

<?php
    global $wpdb;
    $results = $wpdb->get_results( "
        SELECT DISTINCT postmeta.meta_value as user_id, postmeta2.meta_value as first_name, postmeta3.meta_value as last_name,
        postmeta4.meta_value as company, postmeta5.meta_value as phone, postmeta6.meta_value as email
        FROM {$wpdb->prefix}postmeta as postmeta
        INNER JOIN {$wpdb->prefix}posts as posts ON postmeta.post_id = posts.ID
        INNER JOIN {$wpdb->prefix}postmeta as postmeta2 ON postmeta2.post_id = posts.ID
        INNER JOIN {$wpdb->prefix}postmeta as postmeta3 ON postmeta3.post_id = posts.ID
        INNER JOIN {$wpdb->prefix}postmeta as postmeta4 ON postmeta4.post_id = posts.ID
        INNER JOIN {$wpdb->prefix}postmeta as postmeta5 ON postmeta5.post_id = posts.ID
        INNER JOIN {$wpdb->prefix}postmeta as postmeta6 ON postmeta6.post_id = posts.ID
        WHERE posts.post_type LIKE 'shop_subscription'
        AND posts.post_status LIKE 'wc-active'
        AND postmeta.meta_key = '_customer_user'
        AND postmeta2.meta_key = '_billing_first_name'
        AND postmeta3.meta_key = '_billing_last_name'
        AND postmeta4.meta_key = '_billing_company'
        AND postmeta5.meta_key = '_billing_phone'
        AND postmeta6.meta_key = '_billing_email'
        ORDER BY postmeta2.meta_key ASC
    " );
?>
<table style="border-collapse: collapse;" border="0" width="450" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <th height="13"><strong>ID</strong></th>
            <th><strong>Last Name</strong></th>
            <th><strong>First Name</strong></th>
            <th><strong>Company</strong></th>
            <th><strong>Phone</strong></th>
            <th><strong>Email</strong></th>
        </tr>
<?php
foreach ( $results as $result ):
?>
        <tr>
            <td height="13"><?php echo $result->user_id; ?></td>
            <td><?php echo $result->last_name; ?></td>
            <td><?php echo $result->first_name; ?></td>
            <td><?php echo $result->company; ?></td>
            <td><?php echo $result->phone; ?></td>
            <td><?php echo $result->email; ?></td>
        </tr>
<?php
endforeach;
?>
    </tbody>
</table>

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

测试并运作。你会得到这样的东西:

enter image description here