Ниже приведен пример функции, которая будет отображать список всех активных подписок с одной даты на другую , в форматированной таблице html. В этом примере вы получите для каждой подписки: идентификатор подписки, дату, идентификатор клиента и имя клиента (вы можете настроить код, чтобы получить то, что вы хотите).
Таким образом, эта функция имеет 2 параметра даты. Для использования и спецификации см. Раздел в конце.
Код функции:
function active_subscription_list($from_date=null, $to_date=null) {
// Get all customer orders
$subscriptions = get_posts(array(
'numberposts' => -1,
'post_type' => 'shop_subscription', // Subscription post type
'post_status' => 'wc-active', // Active subscription
'orderby' => 'post_date', // ordered by date
'order' => 'ASC',
'date_query' => array(// Start & end date
array(
'after' => $from_date,
'before' => $to_date,
'inclusive' => true,
),
),
));
// Styles (temporary, only for demo display) should be removed
echo "<style>
.subscription_list th, .subscription_list td{border:solid 1px #666; padding:2px 5px;}
.subscription_list th{font-weight:bold}
.subscription_list td{text-align:center}
</style>";
// Displaying list in an html table
echo "<table class='shop_table subscription_list'>
<tr>
<th>" . __('Number ID', 'your_theme_domain') . "</th>
<th>" . __('Date', 'your_theme_domain') . "</th>
<th>" . __('User ID', 'your_theme_domain') . "</th>
<th>" . __('User Name', 'your_theme_domain') . "</th>
</tr>
";
// Going through each current customer orders
foreach ($subscriptions as $subscription) {
$subscription_id = $subscription->ID; // subscription ID
$subscription_date = array_shift(explode(' ', $subscription->post_date)); // Date
$subscr_meta_data = get_post_meta($subscription->ID);
$customer_id = $subscr_meta_data['_customer_user'][0]; // customer ID
$customer_name = $subscr_meta_data['_billing_first_name'][0] . ' ' . $subscr_meta_data['_billing_last_name'][0];
echo "</tr>
<td>$subscription_id</td>
<td>$subscription_date</td>
<td>$customer_id</td>
<td>$customer_name</td>
</tr>";
}
echo '</table>';
}
Этот код идет в function.php файле Вашего активного ребенка темы (или темы), или же в любом файле плагина.
ИСПОЛЬЗОВАНИЕ(пример):
Вы должны уважать этот числовой формат даты: YEAR-MONTH-DAY
$from_date = '2016-06-19'; // start date
$to_date = '2016-09-21'; // End date
active_subscription_list($from_date, $to_date);
Это будет отображать список всех активных подписок с 2016-06-19 по 2016-09-21 годы ...
Этот код проверен и работает.
Просьба уточнить, что вы имеете в виду под подпиской. – helgatheviking
HI, спасибо https://woocommerce.com/products/woocommerce-subscriptions/ – Leon
Я знаю, что такое плагин подписки WooCommerce. Я прошу разъяснить ваш вопрос. Вы хотите, чтобы все подписки были созданы за это время или вы хотите включить подписки с платежами за продление, сделанные за это время. Первый - это простой ['WP_Query'] (https://codex.wordpress.org/Class_Reference/WP_Query# Date_Parameters), последнее я не уверен. – helgatheviking