Hoy echamos un vistazo a la página de pago de WooCommerce y específicamente a cómo Deshabilitar una pasarela de pago (por ejemplo PayPal) Cuando se selecciona un método de envío específico (por ejemplo, «local_pickup»).
Específicamente, aprenderá cómo «obtener» el método de envío seleccionado sobre el GO (gracias a «Sesiones»), y también cómo «desaconsejar» una pasarela de pago. ¡Disfrutar!
Tabla de contenido
Php Snippet: Desactive la pasarela de pago para un método de envío específico: wooCommerce
En este ejemplo, deshabilitaré la pasarela de pago «COD» para todas las tarifas de envío de «recolección local» en cualquier zona de envío. También puede apuntar a una tasa de envío específica (en una sola zona).
1 | /** n*@snippet Disable Payment Gateway For Specific Shipping Method n*@how-to https://tdestudiodesign.com/tutoriales n*@author Tomás Lucas D´Amario, TD Estudio Design n*@testedwith WooCommerce 7 n*@community https://tdestudiodesign.com/club */ add_filter( 'woocommerce_available_payment_gateways' , 'tddesign_gateway_disable_for_shipping_rate' ); function tddesign_gateway_disable_for_shipping_rate( $available_gateways ) { if ( ! is_admin() && WC()->session ) { $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $chosen_shipping = $chosen_methods [0]; if ( isset( $available_gateways [ 'cod' ] ) && 0 === strpos ( $chosen_shipping , 'local_pickup' ) ) { unset( $available_gateways [ 'cod' ] ); } } return $available_gateways ; } |
Php Snippet: Agregar casilla de verificación de aceptación de la política de privacidad @ WooCommerce Checkout
1 | /** n*@snippet Add privacy policy tick box at checkout n*@how-to https://tdestudiodesign.com/tutoriales n*@author Tomás Lucas D´Amario, TD Estudio Design n*@compatible WooCommerce 3.6.3 n*@community https://tdestudiodesign.com/club */ add_action( 'woocommerce_review_order_before_submit' , 'tddesign_add_checkout_privacy_policy' , 9 ); function tddesign_add_checkout_privacy_policy() { woocommerce_form_field( 'privacy_policy' , array ( 'type' => 'checkbox' , 'class' => array ( 'form-row privacy' ), 'label_class' => array ( 'woocommerce-form__label woocommerce-form__label-for-checkbox checkbox' ), 'input_class' => array ( 'woocommerce-form__input woocommerce-form__input-checkbox input-checkbox' ), 'required' => true, 'label' => 'I' ve read and accept the <a href=https://tdestudiodesign.com/woocommerce-aceptación-adicional-casilla-de-pago/ "/privacy-policy" >Privacy Policy</a> ', )); } // Show notice if customer does not tick add_action( ' woocommerce_checkout_process ', ' tddesign_not_approved_privacy ' ); function tddesign_not_approved_privacy() { if ( ! (int) isset( $_POST[' privacy_policy '] ) ) { wc_add_notice( __( ' Please acknowledge the Privacy Policy ' ), ' error' ); } } |