WooCommerce: permitir "pagar el pedido" sin iniciar sesión

Algunos complementos, como los pagos de "depósito" y "suscripción", envían a los clientes a la página "Pagar por pedido" para completar un pedido pendiente de WooCommerce. En ciertos casos, también, el cliente se ve obligado a iniciar sesión y esto realmente afecta la tasa de conversión de ventas; en lugar del formulario de pago, los clientes ven este aviso: " Inicie sesión en su cuenta a continuación para continuar con el formulario de pago ".

Aquí hay un fragmento rápido para asegurarse de que los clientes no tengan que iniciar sesión cuando estén en la página "Pagar por pedido", para que puedan continuar con el pago de inmediato. La función de WooCommerce en cuestión es wc_customer_has_capability y, afortunadamente, podemos anularla con el filtro user_has_cap . ¡Disfrutar!

Captura de pantalla del aviso "Inicie sesión en su cuenta a continuación para continuar con el formulario de pago" que aparece en la página "Pagar el pedido"

Fragmento de PHP: permitir que el cliente "pague el pedido" si se desconectó (pago de WooCommerce)

/**
 * @snippet       Pay for Order if Logged Out - WooCommerce Checkout
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.6.2
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_filter( 'user_has_cap', 'bbloomer_order_pay_without_login', 9999, 3 );
 
function bbloomer_order_pay_without_login( $allcaps, $caps, $args ) {
   if ( isset( $caps[0], $_GET['key'] ) ) {
      if ( $caps[0] == 'pay_for_order' ) {
         $order_id = isset( $args[2] ) ? $args[2] : null;
         $order = wc_get_order( $order_id );
         if ( $order ) {
            $allcaps['pay_for_order'] = true;
         }
      }
   }
   return $allcaps;
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir