Woocommerce Subscriptions cuenta con una función llamada «wcs_user_has_subscription
()» pero es posible que experimentes errores como:
Para solucionarlo podemos hacerlo de otra forma. Vamos a realizar una consulta en la base de datos».
Puedes usar la función wcs_user_has_subscription()
para verificar si un usuario tiene una suscripción activa en el plugin «Woocommerce Subscriptions». Ejemplo de código:
function check_user_subscription_active() {
if( function_exists( 'wcs_get_users_subscriptions' ) ) {
// When a $user_id is not specified, get the current user Id
if( is_user_logged_in() ) {
$user_id = get_current_user_id();
}
// User not logged in we return false
global $wpdb;
// Get all active subscriptions count for a user ID
$count_subscriptions = $wpdb->get_var( "
SELECT count(p.ID)
FROM {$wpdb->prefix}posts as p
JOIN {$wpdb->prefix}postmeta as pm
ON p.ID = pm.post_id
WHERE p.post_type = 'shop_subscription'
AND p.post_status = 'wc-active'
AND pm.meta_key = '_customer_user'
AND pm.meta_value > 0
AND pm.meta_value = '$user_id'
" );
return $count_subscriptions == 0;
}
}
Esta función busca en la base de datos si la subscripción está activa para el usuario actual.