OBTENGA un código de cupón a través de la URL y aplíquelo en la página de pago de WooCommerce

Tengo un sitio web de WooCommerce y, cuando el cliente agrega un carrito a un producto, se lo redirige a la página de pago, por lo que no se puede acceder a la página del carrito.

Me gustaría aplicar el cupón a través de la URL ( GET ) en la página de pago, con algo como https://example.com/?coupon_code=highfive .

Cuando el cliente hace clic en esta URL, el código de cupón se almacena en las sesiones del navegador. Luego, si agrega al carrito cualquier producto, el cupón se aplica a la página de pago.

es posible?

Actualización 3: Esto se puede hacer de una manera muy simple con las siguientes 2 funciones enganchadas:

  • El primero capturará el código de cupón en la URL y lo establecerá en WC_Sessions.
  • El segundo aplicará el código de cupón de la sesión en la página de pago.

Aquí está este código:

 add_action('init', 'get_custom_coupon_code_to_session'); function get_custom_coupon_code_to_session(){ if( isset($_GET['coupon_code']) ){ // Ensure that customer session is started if( !WC()->session->has_session() ) WC()->session->set_customer_session_cookie(true); // Check and register coupon code in a custom session variable $coupon_code = WC()->session->get('coupon_code'); if(empty($coupon_code)){ $coupon_code = esc_attr( $_GET['coupon_code'] ); WC()->session->set( 'coupon_code', $coupon_code ); // Set the coupon code in session } } } add_action( 'woocommerce_before_checkout_form', 'add_discout_to_checkout', 10, 0 ); function add_discout_to_checkout( ) { // Set coupon code $coupon_code = WC()->session->get('coupon_code'); if ( ! empty( $coupon_code ) && ! WC()->cart->has_discount( $coupon_code ) ){ WC()->cart->add_discount( $coupon_code ); // apply the coupon discount WC()->session->__unset('coupon_code'); // remove coupon code from session } } 

El código va en el archivo function.php del tema secundario activo (o tema activo). Probado y funciona

Inspirado en este código de respuesta, Lukasz Wiktor ha publicado un complemento: Woo Coupon URL