En algunas ocasiones es posible que tengas una tienda en donde para algunos productos requieras que un usuario se registre, sin embargo para otros productos se podría realizar la compra como usuario invitado.
Generalidades
Veremos como tener una doble configuración para la compra de productos en WooCommerce, por defecto dejaremos la tienda habilitada para la compra de usuarios invitados, sin embargo para ciertos productos requeriremos el registro de usuarios.
Código para solicitar registro al comprar ciertos productos
El siguiente código puedes agregarlo como parte de tu archivo functions.php de tu tema hijo.
add_filter( 'woocommerce_checkout_registration_required', 'dcms_checkout_registration_required', 10, 1 );
function dcms_checkout_registration_required( $bool_value ) {
// IDs de productos que requieren registro
$product_ids = array ( 2704 );
if ( ! WC()->cart ) return $bool_value;
// Recorremos los ítems del carrito
foreach ( WC()->cart->get_cart() as $cart_item ) {
// Si el producto se encuentra dentro del array de $product_ids,
// entonces se requiere registro
if ( in_array( $cart_item['product_id'], $product_ids ) ) {
$bool_value = true;
break;
}
}
return $bool_value;
}
En el código anterior:
- Utilizamos el Hook woocommerce_checkout_registration_required que hace referencia a la función dcms_checkout_registration_required
- Definimos un array $product_ids, donde colocamos los Ids de los productos que requieren que el usuario este registrado
- Hacemos una validación para saber si el objeto existe WC()->cart
- Si existe recorremos el objeto de carrito y comprobando si algún ítem se encuentra restringido
- Si el producto requiere un usuario conectado entonces devolvemos el parámetro $bool_value en true
Conclusión
Como has podido comprobar, puedes habilitar tu sitio para que se pueda comprar sin registrase, sin embargo para ciertos productos específicos, puedes requerir que sólo los compren usuarios que se encuentren registrados.
La entrada Registrar usuarios sólo para la compra de ciertos productos en WooCommerce es un artículo reciente del sitio DecodeCMS.
0 Commentaires