php - tag - WooCommerce: obtenga suscripciones activas en una lista entre la fecha de inicio y finalizaciĆ³n
wordpress get the page id (1)
Aquí hay un ejemplo de una función que mostrará una lista de todas las suscripciones activas de una fecha a otra, en una tabla html formateada. En este ejemplo, obtendrá por cada suscripción: la ID de suscripción, la fecha, la ID del cliente y el nombre del cliente (Puede personalizar el código para obtener lo que desea).
Entonces esta función tiene 2 parámetros de fecha. Para el uso y las especificaciones, vea la sección al final.
El código de función:
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>'';
}
Este código va en el archivo function.php de su tema (o tema) hijo activo o también en cualquier archivo de complemento.
USO (ejemplo) :
Deberá respetar este formato numérico de fecha: YEAR-MONTH-DAY
$from_date = ''2016-06-19''; // start date
$to_date = ''2016-09-21''; // End date
active_subscription_list($from_date, $to_date);
Esto mostrará una lista de todas las suscripciones activas del 2016-06-19 al 2016-09-21 ...
Este código está probado y funciona.
Estoy usando suscripciones de WooCommerce.
¿Cómo puedo obtener todas las suscripciones (con fecha de inicio y fecha de finalización) en una lista de una fecha específica a otra?
Ejemplo 01/09/2016 al 15/09/2016
Gracias