获取所有WooCommerce订阅

时间:2017-08-15 21:10:28

标签: php sql wordpress woocommerce woocommerce-subscriptions

我需要创建一个wordpress模板来收集所有Woocommerce订阅,但我在使用文档时遇到了问题。我需要知道要导入哪些文件以及要调用的函数。

谢谢你的建议。

2 个答案:

答案 0 :(得分:2)

您可以使用内置函数wcs_get_subscriptions($ args)并传递以下$ args

$args = array( 'subscriptions_per_page' => -1 );

$subscriptions = wcs_get_subscriptions( $args );

您甚至可以在参数中按订阅状态进行过滤。

答案 1 :(得分:0)

  

更新:使用专用函数wcs_get_subscriptions()是安德鲁舒尔茨答案中解释的最佳方法。我的答案代码做了类似的事情。

由于订阅是自定义帖子类型,您可以先获取所有订阅ID。然后在foreach循环中,您将能够获得WC_subscription对象。

global $wpdb;

// get all subscriptions IDS
$subscriptions_ids = $wpdb->get_col("
    SELECT ID  FROM {$wpdb->prefix}posts 
    WHERE post_type LIKE 'shop_subscription'
");

// Loop through subscriptions Ids
foreach($subscriptions_ids as $subscription_id){
    // Get an instance of the WC_Subscription object
    $subscription = new WC_Subscription( $subscription_id );
}

然后使用 $subscription 对象和 $subscription_id ,您可以使用 {{1在专用函数上获取所需数据或使用订阅ID的方法。

官方开发者文档: