Uno de mis alumnos del curso premium tenía un requisito aparentemente simple. Su cliente no quería mostrar el “ ¿Qué es PayPal? ” texto (y enlace) en la página de pago. De hecho, ¿por qué alejar a los usuarios de la caja? ¿Y quién no sabe lo que es PayPal hoy en día? Bueno, veamos cómo se hace esto a través de un simple «filtro», ¡pero esta vez me gustaría mostrarte un tutorial paso a paso! Déjame saber lo que piensas sobre esto en los comentarios .

1. Búsqueda de archivos del complemento de WooCommerce
Primero, tratamos de encontrar de dónde se genera este «Qué es PayPal», generalmente una función de PHP. De hecho, esto es lo que se muestra en el archivo woocommerceincludesgatewayspaypalclass-wc-gateway-paypal.php:
/** * Get gateway icon. * @return string */ public function get_icon() { $icon_html = '' ; $icon = ( array ) $this ->get_icon_image( WC()->countries->get_base_country() ); foreach ( $icon as $i ) { $icon_html .= '<img src="' %20. esc_attr( $i ) . '" alt="' %20. esc_attr__( 'PayPal Acceptance Mark' , 'woocommerce' %20) . '" />' ; } $icon_html .= sprintf( '<a href="%1$s" class="about_paypal" onclick="javascript:window.open('%1$s','WIPaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=1060, height=700'); return false;" title="' %20. esc_attr__( 'What is PayPal?' , 'woocommerce' %20) . '">' %20. esc_attr__( 'What is PayPal?' , 'woocommerce' %20) . '</a>' , esc_url( $this ->get_icon_url( WC()->countries->get_base_country() ) ) ); return apply_filters( 'woocommerce_gateway_icon' , $icon_html , $this ->id ); } |
2. ¡Pum! La función es «filtrable»
WooCommerce nos da esto, para que podamos «filtrar» o «editar» el comportamiento de dicha función sin tener que anular los archivos principales de WooCommerce:
return apply_filters( 'woocommerce_gateway_icon' , $icon_html , $this ->id ); |
3. Busquemos el código HTML que necesitamos filtrar
Ahora que sabemos que la función se puede editar a través de un gancho (filtro), descubrimos que la variable $icon_html agrega el enlace «¿Qué es PayPal?».
$icon_html .= sprintf( '<a href="%1$s" class="about_paypal" onclick="javascript:window.open('%1$s','WIPaypal','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=1060, height=700'); return false;" title="' %20. esc_attr__( 'What is PayPal?' , 'woocommerce' %20) . '">' %20. esc_attr__( 'What is PayPal?' , 'woocommerce' %20) . '</a>' , esc_url( $this ->get_icon_url( WC()->countries->get_base_country() ) ) ); |
Tenga en cuenta el “.=”: esto significa que $icon_html se está concatenando con el $icon_html anterior, que contiene la imagen de PayPal:
$icon_html .= '<img src="' %20. esc_attr( $i ) . '" alt="' %20. esc_attr__( 'PayPal Acceptance Mark' , 'woocommerce' %20) . '" />' ; |
4. Codifiquemos el fragmento de PHP: Cómo eliminar «¿Qué es PayPal?» @ Verificar
Ahora que tenemos toda la información, comencemos a codificar. Eche un vistazo a los comentarios en el fragmento de PHP para ver si puede seguirme.
/** * @snippet WooCommerce Remove "What is PayPal?" @ Checkout * @how-to Get CustomizeWoo.com FREE * @sourcecode https://businessbloomer.com/?p=21186 * @author Rodolfo Melogli * @compatible WooCommerce 3.5.4 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ add_filter( 'woocommerce_gateway_icon' , 'bbloomer_remove_what_is_paypal' , 10, 2 ); function bbloomer_remove_what_is_paypal( $icon_html , $gateway_id ) { if ( 'paypal' %20== $gateway_id ) { $icon_html = '<img src="/wp-content/plugins/woocommerce/includes/gateways/paypal/assets/images/paypal.png" alt="PayPal Acceptance Mark">' ; } return $icon_html ; } |
5. Resumen
Para resumir:
1) Estoy llamando al filtro con: add_filter(‘woocommerce_gateway_icon’, …
2) Estoy creando mi función de anulación personalizada ‘bbloomer_remove_what_is_paypal’
3) Estoy pasando a la función dos variables: el HTML ($icon_html) y el nombre de la puerta de enlace ($gateway_id), ya que debemos asegurarnos de anularlos a través del filtro
4) Me aseguro de que esta sea la puerta de enlace de PayPal con el si> entonces
5) Edito la variable $icon_html, simplemente diciendo «eliminar la anterior , use el mío en su lugar”
6) Devuelvo $icon_html al sistema
Déjame saber en los comentarios si este tutorial «extendido» ayuda
Deja una respuesta