Дата начала подписки на 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");

Я посмотрел на документы Вот а также Вот но я до сих пор ничего не пишу по этому поводу, и я знаю, что это будет что-то глупое, простое, например, добавить переменную куда-нибудь, запятую или [»] — я пробовал множество комбинаций вещей, которые имеют для меня смысл, но ничего не работает (это единственная комбинация, которая вернула что-либо полезное).

Любые полезные комментарии будут с благодарностью. Заранее спасибо.

2

Решение

Стоит упомянуть несколько вещей:

Во-первых, это не Core 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;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]