Hola @diegosanchez93,
Bienvenido a los foros de ayuda de la comunidad de WordPress.org!
Pues lo que buscas, creo que se puede hacer con este plugin premium:
https://woocommerce.com/es-es/products/smart-coupons/
Si buscas alguna opción gratuita, échale un vistazo a los del repositorio aquí:
https://wordpress.org/plugins/search/woocommerce+coupon/
Espero que esto te haya servido un poquito de ayuda 🙂
Cuéntanos y así otras personas se podrán beneficiar de la solución si llegaran con un problema similar en el futuro!
Muchas gracias Rocío por tu respuesta.
Había preguntado en la pagina de stackoverflow lo mismo y me eliminaron la pregunta supuestamente por formularla mal. Tu respuesta va directo a lo que queria saber, simplemente en principio que plugins me podrian ayudar a hacer algo asi o similar. Voy a ir probando y cualquier cosa subo las soluciones encontradas. Probablemente meta mano al codigo fuente tambien.
Abrazo!
Estupendo Diego! Ya nos contarás qué plugin finalmente usarás, que quede constancia aquí será muy util para otras personas con las mismas necesidades en el futuro 🙂
Y en cuanto a lo de stackoverflow, suelen ser muy tiquismiquis para que las preguntas sean super detalladas, lo cual lo hace complicado cuando uno tiene preguntas más generales, por eso prefiero estos foros donde nos ayudamos unos a otros.
Suerte con el proyecto y ya nos contarás!
hola, espero se encuentren bien, buenas vibras para todos. Escribo para saber si alguien me puede ayudar. estoy desarrollando un sitio para un cliente, uno de los requerimientos es que el sitio debe tener un sistema de suscripción de pago en donde al pagar la suscripción el cliente comience a recibir un correo cada vez que se cree un nuevo post, este post no es un post de noticias es un post con informacion especializada y en este correo de aviso, iran datos concretos y tendra un link que te lleva a un archivo pdf. la página ya estaba terminada y funcionaba todo a la perfección, pero al migrarla al servidor del cliente, comenzó a dar problemas este sistema, todo lo demas funciona muy bien. el sistema que monte era un sistema con yith suspcribers y con mailpoet, en mi servidor (como les comente) todo funcionaba bien, llegaban los correos y todo, pero en el servidor del cliente dejaron de llegar los correos de confirmación y de activación de la suscripción, hicimos mil cambios y mil pruebas y nada, se limpió la base de datos y nada, entonces decidimos comenzar a probar otra via, por eso estoy aquí, y espero que alguien pueda ayudarnos con esto, se lo agradecería inmensamente
-
Esta respuesta fue modificada hace 1 año, 11 meses por rafaelepp.
Hola @rafaelepp
Bienvenido al foro de soporte. Te dejo el enlace a las Instrucciones de uso de los foros, ahí tienes explicada, entre otras cosas, la forma correcta de hacer una consulta.
Tu consulta no tiene nada que ver con lo que se trata en este debate, por favor, crea un debate nuevo siguiendo las instrucciones de la guía con toda la información.
Buenas!!. Vuelvo a comentar como dije anteriormente que volvería, si es que encontraba alguna solucion a mi problema.
Para hacer lo que comentaba al inicio del debate, utilicé 3 plugins gratuitos:
1. Code Snippets (para escribir codigo)
2. Conditional Discounts for WooCommerce by ORION
3. Product Visibility by User Role for WooCommerce
Opcional:
4. Restrict – membership, site, content and user access restrictions for WordPress (para hacer otra funcionalidad que comento mas abajo)
Pasos que realicé:
1. En principio cree un rol en WordPress para usuarios «Premium».
2. Con Code Snippets escribí un codigo que sirve para que al comprar cierto producto que le indico, me cambie automaticamente al rol «Premium». Este codigo lo obtibe del siguiente enlace: https://davidlanau.com/tutoriales/12-snippet-cambia-rol-cliente-premium-compra-woocommerce/
3. Despues, con Product Visibility by User Role for WooCommerce, se podran hacer que ciertos productos sean visibles solo para usuarios «Premium»
4. Y finalmente, se puede hacer tambien que con Conditional Discounts for WooCommerce by ORION, configures un producto que quieras que al ser comprado automaticamente te genere el descuento que quieras pero en otros productos (El descuento puede ser en % o monto fijo de descuento, y podes indicar el id de los productos a hacer el descuento).
Basicamente me maneje con esos plugins, pero llegue a probar tambien con Restrict Pro, que se puede hacer que con cierto rol del cliente, pueda tener acceso por ej a una categoria entera de productos, o bien una seccion en el menu solo visible para ellos. Ese plugin es muy interesante, tiene sus funcionalidades gratuitas y otras pagas.
Espero que sirva para poder ayudar a mas personas que busquen realizar algo similar.
Abrazo!
Hola @diegosanchez93
Muchas gracias por compartir la solución, has captado a la perfección el espíritu del foro: compartir conocimiento. A continuación pongo el código por si la fuente original falla, así como los enlaces a los plugins que usaste:
Snippet que cambia el rol de usuario del cliente a Cliente Premium cuando compra un determinado producto en WooCommerce:
// Cambia el rol de usuario del cliente a "Cliente premium" cuando compra uno o varios productos determinados
add_action( 'init', 'add_premium_customer_role' );
function add_premium_customer_role(){
$customer_role = get_role( 'customer' );
add_role( 'premium_customer', __( 'Cliente Premium', 'woocommerce' ), $customer_role->capabilities );
}
add_action( 'woocommerce_checkout_order_processed', 'change_user_role_by_product_purchased', 10, 2 );
function change_user_role_by_product_purchased( $order_id, $posted ){
$order = new WC_Order( $order_id );
$new_role = 'premium_customer';
$products_list = array( '590' ); // Aquí debes definir la lista de productos para los que se aplicará el cambio de rol
// Obtiene el email del pedido
if( '3.0.0' <= WC()->version ){
$billing_email = $order->get_billing_email();
}else{
// Mantiene compatibilidad con WooCommerce <= 2.6.x
$order_meta = get_post_meta( $order_id );
$billing_email = $order_meta[ '_billing_email' ][0];
}
// Comprueba si el usuario ya está registrado con ese email
if( email_exists( $billing_email ) ) {
foreach ( $order->get_items() as $product ) {
if ( in_array( $product[ 'product_id' ], $products_list ) ) {
$user = get_user_by( 'email', $billing_email );
$user->set_role( $new_role );
}
}
}
}
Para personalizarlo con tu producto solo tienes que cambiar el número 590 de la línea 13 por el ID (o IDs de los productos separados por coma si son varios) para los que quieras aplicar esta funcionalidad.
Plugins:
Code Snippets
Product Visibility by User Role for WooCommerce
Conditional Discounts for WooCommerce – A simple yet complete woocommerce dynamic pricing plugin
Marco el debate como resuelto.