Get Woocommerce订阅开始日期
问题描述:
我意识到这可能完全是一个总的新手问题,但在这一点上我很沮丧,我甚至不在乎。我试图用当前用户订阅开始日期创建一个变量 - 如果他们有一个 - 并且我被困在开始日期。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");
我看了文件here和here但我仍然只是起草没事就这一点,我知道这将是愚蠢的东西简单的像添加变量之后我某处,逗号或[''] - 我尝试过无数对我有意义的事物组合,但没有任何工作(这是返回任何使用的唯一组合)。
任何有用的意见将不胜感激。提前致谢。
答
值得一提的几件事情:
首先,这不是核心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;
}
感谢非常有帮助,尊重,及时和彻底的回应!我想我错过了当我疯狂地寻找一种方法使其工作 - 它说我可能还没有得到你提供的正确的结束编码。 我没有设置用户ID,默认情况下,如果没有值,它会填充当前用户,我相信?对于我正在编写的函数,我只是想看看他们是否有任何订阅(并且他们一次只能有1个订阅)。 –