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).
/** 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
/** 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' ); } }