Current File : /var/www/e360ban/wp-content/plugins/wp-shortcodes-usuarios/integraciones/memberships.php |
<?php
/**
* Datos de WooCommerce Memberships
* copyright Enrique J. Ros - enrique@enriquejros.com
*
* @author Enrique J. Ros
* @link https://www.enriquejros.com
* @since 1.0.0
* @package WPShortcodesUsuarios
*
*/
defined ('ABSPATH') or exit;
Class WP_Shortcodes_Usuarios_Memberships {
public function __construct ($dato_shortcode, $user_id, $shortcode_id) {
$this->resultado = false;
switch ($dato_shortcode) {
case 'tabla_membresias':
$activas = apply_filters ('wp_shortcodes_usuarios_membresias_activas', false);
/**
* Si queremos que la tabla sólo muestre las membresías activas
*
* add_filter ('wp_shortcodes_usuarios_membresias_activas', '__return_true');
*
*/
if (!count ($membresias = ($activas ? wc_memberships_get_user_active_memberships ($user_id) : wc_memberships_get_user_memberships ($user_id)))) {
$this->resultado = $activas ? __('No tiene ninguna membresía activa.', 'wp-shortcodes-usuario') : __('No tiene ninguna membresía.', 'wp-shortcodes-usuario');
break;
}
$estados = wc_memberships_get_user_membership_statuses();
$formato = get_option ('date_format');
$this->resultado = sprintf ('<table class="shop_table shop_table_responsive my_account_orders my_account_memberships wp-shortcodes-membresias">
<thead>
<tr>
<th class="membership-plan wp-shortcodes-membresias-plan">
<span class="nobr">%s</span>
</th>
<th class="membership-start-date wp-shortcodes-membresias-inicio">
<span class="nobr">%s</span>
</th>
<th class="membership-end-date wp-shortcodes-membresias-fin">
<span class="nobr">%s</span>
</th>
<th class="membership-status wp-shortcodes-membresias-estado">
<span class="nobr">%s</span>
</th>
<th class="membership-actions wp-shortcodes-membresias-acciones">
</th>
</thead>
<tbody>', __('Plan', 'wp-shortcodes-usuario'), __('Inicio', 'wp-shortcodes-usuario'), __('Fin', 'wp-shortcodes-usuario'), __('Status', 'woocommerce'));
foreach ($membresias as $membresia) {
//print_r($membresia);
$fecha_ini = $membresia->get_start_date('timestamp');
$f_ini_form = date_i18n ($formato, $fecha_ini + 86400); //Memberships muestra el día antes
$fecha_fin = $membresia->get_end_date('timestamp');
$f_fin_form = date_i18n ($formato, $fecha_fin + 86400); //Memberships muestra el día antes
$url_ver = get_permalink (get_option ('woocommerce_myaccount_page_id')) . 'members-area/' . $membresia->plan_id . '/my-membership-content/';
$this->resultado .= sprintf ('<tr class="membership">
<td class="membership-plan wp-shortcodes-membresia-plan" data-title="%s">
<a href="%s">%s</a>
</td>
<td class="membership-start-date wp-shortcodes-membresia-inicio" data-title="%s">
<time datetime="%s" title="%s">%s</time>
</td>
<td class="membership-end-date wp-shortcodes-membresia-fin" data-title="%s">
%s%s%s
</td>
<td class="membership-status wp-shortcodes-membresia-estado" data-title="%s">%s</td>
<td class="membership-actions order-actions wp-shortcodes-membresia-acciones">
<a href="%s" class="woocommerce-button button view">%s</a>
</td>',
__('Plan', 'wp-shortcodes-usuario'),
$url_ver,
$membresia->plan->name,
__('Inicio', 'wp-shortcodes-usuario'),
date ('Y-m-d', $fecha_ini),
$f_ini_form,
$f_ini_form,
__('Fin', 'wp-shortcodes-usuario'),
$fecha_fin ? '<time datetime="' . date ('Y-m-d', $fecha_fin) . '" title="' . $f_fin_form . '">' : '',
$fecha_fin ? $f_fin_form : '-',
$fecha_fin ? '</time>' : '',
__('Status', 'woocommerce'),
__($estados['wcm-' . $membresia->get_status()]['label'], 'woocommerce-memberships'),
$url_ver,
__('View', 'woocommerce')
);
}
$this->resultado .= '</tbody></table>';
break;
case 'membresias_activas':
$membresias = [];
foreach (wc_memberships_get_user_active_memberships ($user_id) as $membresia)
//if ('active' == $membresia->get_status())
$membresias[] = $membresia->plan->name;
$this->resultado = count ($membresias) ? implode ($membresias, ', ') : __('No tiene membresías activas.', 'wp-shortcodes-usuario');
break;
case 'fecha_fin_membresia':
$plan = get_field ('plan', $shortcode_id);
if (wc_memberships_is_user_active_member ($user_id, $plan))
foreach (wc_memberships_get_user_active_memberships ($user_id) as $membresia)
if ($plan == $membresia->plan->slug)
$this->resultado = ($fecha = $membresia->get_end_date('timestamp')) ? date_i18n (get_option ('date_format'), $fecha + 86400) : __('Sin fecha de fin', 'wp-shortcodes-usuario'); //Memberships muestra el día antes
break;
}
return $this->resultado;
}
}