CENTRO DE AYUDA

Home/Woocommerce/Asignar role por defecto al registrarse en Woocommerce
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Asignar role por defecto al registrarse en Woocommerce

Por defecto Woocommerce al registrase un nuevo usuario en el proceso de compra, el perfil es asignado automáticamente al role «Customer»Si queremos que nuestros nuevos clientes tengan asignado un role especifico, por ejemplo por que les aplicaremos unas tarifas especiales a los usuarios ya registrados, añadiendo el siguiente código en nuestro archivo functions.php de nuestro tema, o de nuestro child theme, voila.

En este caso con el ejemplo anterior, asignaríamos el role por defecto a los usuarios registrados de Woocommerce a «subscriber». Puedes modificarlo por el que desees. Recuerda que debes utilizar el slug del rol, no el nombre.

También no olvides de cambiar el role por defecto para cuando los usuarios se registran en tu web como usuarios desde Ajustes > Generales > Perfil predeterminado para nuevos usuarios. Este perfil elegido aquí, será el que se utilice cuando el usuario se registra, mediante el formulario de registro de usuarios de WordPress y no de Woocommerce, por lo que te recomendamos cambiarlo en ambos por igual.

Recuerda por otro lado, un buen plugin para gestionar los perfiles y roles de tus usuarios WordPress, te recomendamos Members

4 Comentarios

  • ¡Gracias por el código! Funciona muy bien 🙂

    De repente, si quisiéramos asignar un rol por defecto para cada categoría de producto… ¿Qué ajuste podríamos hacer? Gracias!

    Saludo!!

    Diego Chavez 17.03.2021
  • ¡Hola!, buenas tardes. Primero que nada quisiera agradecer el código que han documentado, funciona perfectamente. Por otro lado, quisiera solicitar su ayuda, ya que quisiera implementarlo con una condición previa; básicamente quisiera asignar el rol con base en la página donde se están registrando. Es decir, si se registran en la página original de woocommerce dar «x» rol y si se registran en la página secundaria creada con un shortcode, asignar «y» rol. El código que estoy usando es este, sin embargo no tengo buenos resultados:

    function wc_assign_custom_role($args) {

    if ( is_page(‘mi-cuenta’) )

    {$args[‘role’] = ‘y’;return $args;}
    else
    { $args[‘role’] = ‘x’;return $args;}

    }

    Gracias anticipadas.

    ¡Saludos!

    Ramiro 10.05.2020
    • Hola Ramiro,

      Tu código parece correcto. Aunque veo que te falta el

      Tienes esta linea?

      iontics 18.11.2020
    • Yo lo pude resolver asi:

      request );
      /**
      * Remplaza el role ‘customer’ que wooocommerce utiliza por defecto, por que el que tu eligas. By iontics.com
      **/
      add_filter(‘woocommerce_new_customer_data’, ‘wc_assign_custom_role’, 10, 1);

      function wc_assign_custom_role($args) {
      if( ! ( end($request) == ‘my-account’ && is_account_page() ) )
      {$args[‘role’] = ‘wholesale_customer’;}
      else
      { $args[‘role’] = ‘customer’;}
      return $args;
      }

      Espero te ayude

      Ulises Trejo 08.04.2021

¿tienes dudas? Escríbenos y te ayudaremos.

Tu email no será publicado. Te enviaremos una notificación en cuanto se responda tu comentario.