2016-03-21 32 views
2

我意识到这可能完全是一个总的新手问题,但在这一点上我很沮丧,我甚至不在乎。我试图用当前用户订阅开始日期创建一个变量 - 如果他们有一个 - 并且我被困在开始日期。Get Woocommerce订阅开始日期

这是我到目前为止 - 它不会是一个简短的代码(它将是一个变量,我把它放入一个函数)我刚刚把它设置为一个简码,所以我可以看到输出 - 并返回用户存储信息的整个数组。我刚刚开始日期:)

function subscriber_start_date(){ 
    $start_date = WC_Subscriptions_Manager::get_users_subscription($user_id, 'start_date'); 
    print_r($start_date); 
} 

add_shortcode("subscriber-start-date","subscriber_start_date"); 

我看了文件herehere但我仍然只是起草没事就这一点,我知道这将是愚蠢的东西简单的像添加变量之后我某处,逗号或[''] - 我尝试过无数对我有意义的事物组合,但没有任何工作(这是返回任何使用的唯一组合)。

任何有用的意见将不胜感激。提前致谢。

回答

1

值得一提的几件事情:

首先,这不是核心WooCommerce,这是一个附加(订阅)。

其次,你链接到文件明确表示:

...每个订阅返回具有以下值的数组...

这意味着功能不将仅返回开始日期。

换言之,第二个字段是订阅标识符。用户可以有多个订阅。此功能可让您获得特定订阅,而不是订阅中的特定字段。

所以,为了做到你想要什么,你需要添加到您的代码如下:

function subscriber_start_date() { 
    // NOTE: You don't have the $user_id - are you setting it? 

    // Somehow you need to identify the subscription you want. 
    $subscription_id = 'MY_SUBSCRIPTION_ID'; 
    $subscription = WC_Subscriptions_Manager::get_users_subscription($user_id, $subscription_id); 

    $start_date = (isset($subscription['start_date'])) ? $subscription['start_date'] : FALSE; 

    var_dump($start_date); 
} 

add_shortcode("subscriber-start-date","subscriber_start_date"); 

如果你不知道的订阅ID,那么你可以做这样的事情来获得“第一次”订阅用户:

function subscriber_start_date() { 
    // Set start date to initial value 
    $start_date = FALSE; 
    // Get ALL subscriptions 
    $subscriptions = WC_Subscriptions_Manager::get_users_subscriptions($user_id); 
    if ($subscriptions) { 
     // Get the first subscription 
     $subscription = array_shift($subscriptions); 
     // Get the start date, if set 
     $start_date = (isset($subscription['start_date'])) ? $subscription['start_date'] : FALSE; 
    } 

    return $start_date; 
} 
+0

感谢非常有帮助,尊重,及时和彻底的回应!我想我错过了当我疯狂地寻找一种方法使其工作 - 它说我可能还没有得到你提供的正确的结束编码。 我没有设置用户ID,默认情况下,如果没有值,它会填充当前用户,我相信?对于我正在编写的函数,我只是想看看他们是否有任何订阅(并且他们一次只能有1个订阅)。 –