admin

获取所有WooCommerce订阅

sql

我需要创建一个wordpress模板来收集所有Woocommerce订阅,但是我在文档方面遇到了麻烦。我需要知道要导入的文件和要调用的函数。

谢谢你的指教。


阅读 202

收藏
2021-07-01

共1个答案

admin

更新-您可以使用多种方式:

1)wcs_get_subscriptions()接受特定参数的内置函数。对于您的情况,要获得所有订阅,您将使用:

$subscriptions = wcs_get_subscriptions(['subscriptions_per_page' => -1]);

您将获得一个受订阅保护的对象数组,您可以在每个对象上使用WC_Data get_data()方法来访问数据:

$subscriptions = wcs_get_subscriptions(['subscriptions_per_page' => -1]);

// Loop through subscriptions protected objects
foreach ( $subscriptions as $subscription ) {
    // Unprotected data in an accessible array
    $data = $subscription->get_data();

    print_r( $data ); // Display the subscription raw data array
}

2)您也可以使用 SQL查询 来获取所有订阅

SQL查询可以更轻松,并且可以进行更多过滤。这样,您可以以更有效的方式仅获取所需的数据。

由于订阅是Wordpress的自定义帖子类型,因此您可以首先获取所有订阅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 );

    $data = $subscriptions->get_data();

    print_r( $data ); Display the subscription raw data (unprotected accessible array)
}

然后,使用 $subscription 对象和对象, $subscription_id 您将能够执行
WC_Subscription 所需的操作,使用方法来获取所需的数据,或者使用专用功能上的订阅ID。


2021-07-01