2

Ich verwende WooCommerce-Abonnements.WooCommerce - aktive Abonnements in einer Liste zwischen Anfangs-/Enddatum

Wie bekomme ich alle Abonnements (mit Startdatum und Enddatum) in Listen von einem bestimmten Datum zu einem anderen Datum?

Beispiel 2016.01.09 bis 15/09/2016

Dank

+0

Bitte klären Sie, was Sie unter Abonnementliste verstehen. – helgatheviking

+0

HI, danke https://woocommerce.com/products/woocommerce-subscriptions/ – Leon

+0

Ich weiß, was das WooCommerce Subscriptions-Plugin ist. Ich bitte um Klarstellung zu Ihrer Frage. Möchten Sie alle Abonnements, die während dieser Zeit erstellt wurden, oder möchten Sie Abonnements mit Verlängerungszahlungen, die während dieser Zeit vorgenommen wurden, enthalten? Das erste ist ein einfaches ['WP_Query'] (https://codex.wordpress.org/Class_Reference/WP_Query# Date_Parameters) Letzteres bin ich mir nicht sicher. – helgatheviking

Antwort

7

Hier ist ein Beispiel für eine Funktion, die eine Liste aller aktiven Abonnements von einem Datum zu einem anderen angezeigt werden , in einer formatierten HTML-Tabelle. In diesem Beispiel erhalten Sie für jedes Abonnement: die Abonnement-ID, das Datum, die Kunden-ID und den Kundennamen (Sie können den Code anpassen, um zu erhalten, was Sie wollen).

Diese Funktion hat also 2 Datumsparameter. Für die Verwendung und Spezifikationen siehe den Abschnitt am Ende.

Der Funktionscode:

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>'; 
} 

Dieser Code geht in function.php Datei Ihres aktiven Kind Thema (oder Thema) oder auch in jeder Plugin-Datei.


USAGE(Beispiel):

Sie haben diese numerische Datumsformat zu beachten: YEAR-MONTH-DAY

$from_date = '2016-06-19'; // start date 
$to_date = '2016-09-21'; // End date 

active_subscription_list($from_date, $to_date); 

Diese Liste aller aktiven Abonnements angezeigt werden von 2016-06-19 bis 2016-09-21 ...

Dieser Code wurde getestet und funktioniert.

+1

Vielen Dank :) – Leon

Verwandte Themen