¿Cómo limitar stock en MemberPress?

Seguro que de entrada, te preguntarás: ¿Por qué limitar el stock en Memberpress? Si yo lo que quiero es vender cuanto más mejor. Pues la respuesta es simple: la escasez como estrategia de marketing.

El término escasez como táctica de ventas – más popularmente conocido en inglés como scarcity –, es una metodología con la que se fuerza al consumidor a priorizar sus necesidades. Bien porque se acerca una fecha en la que un producto será más caro o bien, se agotarán el número de unidades disponibles en venta. El primer caso lo habrás visto como una cuenta atrás; el segundo, con el empleo de estocaje y unidades limitadas.

Si trabajas también con herramientas como Thrivecart, hay un estupendo artículo donde mi compañera Lúa te explica cómo emplear la técnica del scarcity.

¿Cómo limitar el número de registros en una membresía?

Por eso, si estás utilizando Memberpress en tu sitio web de membresía, hoy voy a enseñarte cómo limitar el número de unidades – membresías – que pones a la venta en tu plataforma online.

Pues existen dos formas de limitar el número de registros para una determinada membresía con Memberpress:

Limitar el número de registros con código [experto]

Si tu nivel de conocimiento de código en WordPress es, digamos “intermedio” quizá pueda interesarte más esta opción para evitar plugins de mas instalados en tu web o la de tus clientes.

Tendrás que añadir la siguiente porción de código al final de tu archivo functions.php para añadir límite de registros a una sola membresía:

	
// Limitar stock de una determinada membresía a la venta en Memberpress

// La función has_limit_reach comprueba si se alcanzó el límite de usuarios para una determinada membresía
function has_limit_reach($membership_id, $limit) {
  global $wpdb;

  $query = "SELECT count(DISTINCT user_id)
              FROM {$wpdb->prefix}mepr_transactions
              WHERE status IN('complete', 'confirmed')
                AND (
                  expires_at IS NULL
                  OR expires_at = '0000-00-00 00:00:00'
                  OR expires_at >= NOW()
                )
                AND product_id = {$membership_id}";

  $count = $wpdb->get_var($query);

  return ($count >= $limit);
}

// Estable límite de registros para una membresía "a"

function limit_signups_for_membership_a($errors) {

  // Cambiar las siguientes dos variables

  $membership_id = 123; // El ID del producto/membresía que quieres limitar
  $limit = 10; // número máximo de registros permitidos.

  if($_POST['mepr_product_id'] != $membership_id) { return $errors; }

  if(has_limit_reach($membership_id, $limit)) {
    $errors[] = __('Lo sentimos, el lmite de ' . $limit . ' miembros ha sido alcanzado. Vuelve pronto.', 'memberpress');
  }

  return $errors;
}

add_filter('mepr-validate-signup', 'limit_signups_for_membership_a');

// Sobreescribe el mensaje para la membresía "a"

function override_membership_signup_form_a($content) {
  global $post;
  
  // Cambiar las siguientes dos variables
  $membership_id = 123; // El ID del producto/membresía que quieres limitar
  $limit = 10; // número máximo de registros permitidos.
  
  if( isset($post) && $post instanceof WP_Post &&
      $post->id == $membership_id &&
      has_reached_limit($membership_id, $limit) ) {
    ob_start();
    ?>
      <div id="registration_full">
        <p>Lo sentimos pero el límite de <?php echo $limit; ?> registros ha sido alcanzado. Por favor, vuelve en otro momento para ver si existen plazas disponibles.</p>
      </div>
    <?php
    $content = ob_get_clean();
  }

  return $content;
}
add_filter('the_content', 'override_membership_signup_form_a', 9999999, 1);

En el código de más arriba existen 3 funciones:

  • has_limit_reach() – solo deberás incluir una vez, en el caso de que vayas a aplicar límites a más de una membresía.
  • limit_signups_for_membership_a() – deberás modificar el ID de la membresía – Puedes encontrarlo en Memberpress > Membresías, en la primera columna. Y el número de registros máximos permitidos.
  • override_membership_signup_form_a() – Igual, mismo ID de membresía y mismo límite de registros que en la función anterior.

Por último, personalizar los mensajes que se devuelven al usuario y hacer clic en “guardar cambios”.

¿Y si quiero añadir más membresías a limitar? Bueno, pues si son dos o tres más, puedes hacerlo de la siguiente forma:

Tendrás que duplicar las dos funciones limit_ y override_ pero añadiendo _b al final en vez de _a. Y además, cambiar los id y límite para que afecten a la nueva membresía. Quedaría tal que así:

function limit_signups_for_membership_b($errors) {

  // Cambiar las siguientes dos variables

  $membership_id = 444; // El ID del producto/membresía que quieres limitar
  $limit = 20; // número máximo de registros permitidos.

  if($_POST['mepr_product_id'] != $membership_id) { return $errors; }

  if(has_limit_reach($membership_id, $limit)) {
    $errors[] = __('Lo sentimos, el lmite de ' . $limit . ' miembros ha sido alcanzado. Vuelve pronto.', 'memberpress');
  }

  return $errors;
}

add_filter('mepr-validate-signup', 'limit_signups_for_membership_b');

function override_membership_signup_form_b($content) {
  global $post;
  
  // Cambiar las siguientes dos variables
  $membership_id = 444; // El ID del producto/membresía que quieres limitar
  $limit = 20; // número máximo de registros permitidos.
  
  if( isset($post) && $post instanceof WP_Post &&
      $post->id == $membership_id &&
      has_reached_limit($membership_id, $limit) ) {
    ob_start();
    ?>
      <div id="registration_full">
        <p>Lo sentimos pero el límite de <?php echo $limit; ?> registros ha sido alcanzado. Por favor, vuelve en otro momento para ver si existen plazas disponibles.</p>
      </div>
    <?php
    $content = ob_get_clean();
  }

  return $content;
}
add_filter('the_content', 'override_membership_signup_form_b', 9999999, 1);

Sin embargo, si tienes muchas más, lo que te recomendamos es la siguiente opción:

Limitar registros de una Membresía con plugin [fácil]

El Plugin en cuestión se llama “Limit Membership Signup” y su función es la misma que el código anterior solo que mucho más práctico y sin tener que escribir una “maldita” linea de código.

Limit Membership Signup – Plugin para Memberpress

Este plugin restringe el número de miembros que pueden registrarse en tu membresía, y siempre mantenla llena permitiendo que nuevos miembros se unan cuando uno abandona.

Tiene un precio de apenas 12$ lo que lo hace bastante asequible. Una vez lo compres, lo instalas en tu sitio web como cualquier otro plugin.

No obstante, si tienes contratado un Plan de soporte y mantenimiento WordPress con Mundo Funnel, podemos hacerlo nosotros por ti. Y si no, puedes escribirnos a través de contacto y darte precio por soporte a medida.

Puedes comprar el plugin a través del siguiente enlace.

Una vez descargado e instalado, detectará las membresías que tienes creadas. Tienes que irte a la columna de la izquierda de tu escritorio y verás un icono de martillo con el texto “MeprToolbox”.

Limit Membership Signup – Menu administrador

Una vez entres dentro, verás que es bastante simple para lo potente que es:

Interfaz de MeprToolbox – Gestionar límites de membresías.

Verás un listado de las membresías disponibles en tu sitio web. En el primer campo, estableces el límite de registros: si el valor es cero, significa que no pones límite al número de registros en esa membresía. Si modificas el valor por otro, entonces significará que será el número de miembros máximo permitido.

La siguiente parte es la personalización del mensaje cuando se exceda el límite de registros para esa membresía.

Siempre que quieras, podrás venir a este panel y modificar el límite o cambiar los mensajes para cada membresía


Pues listo. ¿Has visto qué sencillo y buena idea? Espero que haya sido de utilidad y puedas usarlo como parte de la estrategia de marketing de tu negocio.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
EscuelaPress

Crea tu escuela online con nosotros


Hola, me llamo Ángel Cano y tengo casi 20 años de experiencia en el universo digital, de los que casí 10 he dedicado directa o indirectamente a WordPress. En los últimos 5 años me he especializado en Escuelas online, membresías y comunidades online.


Deja un comentario

Responsable del fichero: Mundo Funnel. Finalidad: Gestionar tu alta a esta suscripción y enviar publicaciones así como alguna oferta de productos o servicios propios y de terceros. La Legitimación: tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing ActiveCampaign (nuestro proveedor de email marketing) a través de su empresa ActiveCampaign, LLC., ubicada en EEUU y que se acoge al acuerdo de seguridad EU-US privacy (Ver política de privacidad de ActiveCampaign). Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a hola@mundofunnel.pro o ante la Autoridad de Control. Encontrarás más información en nuestra Política de privacidad.

Responsable del fichero: Mundo Funnel. Finalidad: Gestionar tu alta a esta suscripción y enviar publicaciones así como alguna oferta de productos o servicios propios y de terceros. La Legitimación: tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing ActiveCampaign (nuestro proveedor de email marketing) a través de su empresa ActiveCampaign, LLC., ubicada en EEUU y que se acoge al acuerdo de seguridad EU-US privacy (Ver política de privacidad de ActiveCampaign). Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a hola@mundofunnel.pro o ante la Autoridad de Control. Encontrarás más información en nuestra Política de privacidad.

Responsable del fichero: Mundo Funnel. Finalidad: Gestionar tu alta a esta suscripción y enviar publicaciones así como alguna oferta de productos o servicios propios y de terceros. La Legitimación: tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing ActiveCampaign (nuestro proveedor de email marketing) a través de su empresa ActiveCampaign, LLC., ubicada en EEUU y que se acoge al acuerdo de seguridad EU-US privacy (Ver política de privacidad de ActiveCampaign). Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a hola@mundofunnel.pro o ante la Autoridad de Control. Encontrarás más información en nuestra Política de privacidad.