https://tdestudiodesign.com/wp-content/plugins/whatsapp/style.css

Las etiquetas condicionales de WooCommerce y WordPress («Lógica condicional de WooCommerce y WordPress») se pueden usar en sus funciones.php para mostrar contenido en función de ciertas condiciones. Por ejemplo, puede mostrar un contenido diferente para diferentes categorías dentro de una sola función PHP.

Puedes encontrar la lista de Etiquetas condicionales de WooCommerce aquí y Etiquetas condicionales de WordPress aquí. No creo que valga la pena pegarlos aquí, así que use esos dos enlaces como referencia; de hecho, en esta publicación de blog me gustaría darle ejemplos, probablemente la mejor manera de aprender la personalización de WooCommerce.

Primero: Cómo usar la lógica condicional

Es posible que tenga un fragmento PHP (cualquiera de los que encuentre en este sitio web, por ejemplo), que hace algo como esto:

 add_action( 'woocommerce_before_single_product', 'bbloomer_echo_text' );   function bbloomer_echo_text() {     echo 'SOME TEXT';  }  

Como puede ver, esto imprime algún texto en la parte superior de la página de producto único. La lógica condicional significa que desea ejecutar la función solo dada una determinada condición, por ejemplo, en este caso queremos imprimir ese texto solo si la ID del producto es 25.

Por lo tanto, la forma en que necesita modificar la función anterior es «envolviendo» todo el interior de la función dentro de una verificación condicional: si es producto 25, haga esto, si no hagas nada.

Por lo tanto, la función se convertirá:

 add_action( 'woocommerce_before_single_product', 'bbloomer_echo_text' );  function bbloomer_echo_text() {    global $product;    if ( 25 === $product->get_id() ) {       echo 'SOME TEXT';    } } 

Como puede ver, el «eco» solo ocurre si la condición es verdadera. ¡Ahora, siga leyendo para más ejemplos lógicos condicionales!

1. ¿Estás trabajando en la página de productos únicos de WooCommerce?

Lo bueno de las páginas de productos individuales en WooCommerce es que WordPress sabe que son «publicaciones». Entonces, puedes usar IS_Single. Se puede encontrar la lista de ganchos para la página de producto único aquí.

PHP: Haga algo solo en páginas de productos individuales

 add_action( 'woocommerce_before_main_content', 'bbloomer_single_product_pages' );  function bbloomer_single_product_pages() {  if ( is_product() ) { echo 'Something'; } else { echo 'Something else'; }  } 

PHP: Haga algo si el producto ID = XYZ

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_product_ID' );  function bbloomer_single_product_ID() {  if ( is_single( '17' ) ) { echo 'Something'; } elseif ( is_single( '56' ) ) { echo 'Something else'; }  } 

PHP: Haga algo si el producto pertenece a una categoría

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_category_slug' );  function bbloomer_single_category_slug() {  if ( has_term( 'chairs', 'product_cat' ) ) { echo 'Something'; } elseif ( has_term( 'tables', 'product_cat' ) ) { echo 'Something else'; }  } 

PHP: Haga algo si el producto pertenece a una etiqueta

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_tag_slug' );  function bbloomer_single_tag_slug() {  if ( has_term( 'blue', 'product_tag' ) ) { echo 'Something'; } elseif ( has_term( 'red', 'product_tag' ) ) { echo 'Something else'; }  } 

PHP: Haga algo si el producto está a la venta

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_on_sale' );  function bbloomer_single_on_sale() { global $product; if ( $product->is_on_sale() ) {  // do something }  } 

PHP: Haga algo si el producto es simple, variable, externo …

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_product_type' );  function bbloomer_single_product_type() { global $product; if( $product->is_type( 'simple' ) ){  // do something } elseif( $product->is_type( 'variable' ) ){  // do something } elseif( $product->is_type( 'external' ) ){  // do something } elseif( $product->is_type( 'grouped' ) ){  // do something }   } 

PHP: Haga algo si el producto es virtual

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_virtual' );  function bbloomer_single_virtual() { global $product; if( $product->is_virtual() ){  // do something }   } 

PHP: Haga algo si el producto se puede descargar

 add_action( 'woocommerce_after_single_product_summary', 'bbloomer_single_downloadable' );  function bbloomer_single_downloadable() { global $product; if ( $product->is_downloadable() ){  // do something }   } 

PHP: Haga algo solo en los productos relacionados

Los productos relacionados son generados por un «bucle». A veces es posible que desee usar su PHP solo en la página de producto único (y excluyendo los relacionados) o Viceversa.

El fragmento a continuación oculta el precio solo en la página de producto único y solo en la sección de productos relacionados.

 add_filter( 'woocommerce_variable_price_html', 'bbloomer_remove_variation_price', 10, 2 );  function bbloomer_remove_variation_price( $price ) {  global $woocommerce_loop;  if ( is_product() && $woocommerce_loop['name'] == 'related' ) { $price = ''; }  return $price; } 

2. ¿Estás trabajando en la página de WooCommerce Shop/Category?

Puedes encontrar todo el SHOP/Archive WooCommerce Hooks aquí. Veamos cómo usar la lógica condicional en estas páginas de «bucle»:

PHP: Haz algo en la página de la tienda solo

 add_action( 'woocommerce_before_main_content', 'bbloomer_loop_shop' );  function bbloomer_loop_shop() {  if ( is_shop() ) { echo 'This will show on the Shop page'; } else { echo 'This will show on all other Woo pages'; }  } 

PHP: Haga algo en cada producto en las páginas de bucle

 add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_loop_per_product' );  function bbloomer_loop_per_product() {  if ( has_term( 'chairs', 'product_cat' ) ) { echo 'Great chairs!'; } elseif ( has_term( 'tables', 'product_cat' ) ) { echo 'Awesome tables!'; } 

PHP: Haga algo en las páginas de categoría

 add_action( 'woocommerce_before_main_content', 'bbloomer_loop_cat' );  function bbloomer_loop_cat() {  if ( is_product_category() ) { echo 'This will show on every Cat pages'; } else { echo 'This will show on all other Woo pages'; }  } 

PHP: Haga algo basado en el nombre de la categoría

 add_action( 'woocommerce_before_main_content', 'bbloomer_loop_cat_slug' );  function bbloomer_loop_cat_slug() {  if ( is_product_category( 'books' ) ) { echo 'This will show on the Books Cat page'; } elseif ( is_product_category( 'chairs' ) ) { echo 'This will show on the Chairs Cat page'; }  } 

PHP: Haz algo en las páginas de etiqueta solo

 add_action( 'woocommerce_before_main_content', 'bbloomer_loop_tag' );  function bbloomer_loop_tag() {  if ( is_product_tag() ) { echo 'This will show on every Cat pages'; } else { echo 'This will show on all other Woo pages'; }  } 

PHP: Haz algo basado en el nombre de la etiqueta

 add_action( 'woocommerce_before_main_content', 'bbloomer_loop_tag_slug' );  function bbloomer_loop_tag_slug() {  if ( is_product_tag( 'red' ) ) { echo 'This will show on the Red Tag page'; } elseif ( is_product_tag( 'yellow' ) ) { echo 'This will show on the Yellow Tag page'; }  } 

3. ¿Estás trabajando en las páginas de WooCommerce?

PHP: Haga algo si está en una página de WooCommerce (excluyendo el carrito/pago, por ejemplo, Shop & Cats & Tags & Products)

 add_action( 'woocommerce_before_main_content', 'bbloomer_woo_page' );  function bbloomer_woo_page() {    if ( is_woocommerce() ) {       echo 'This will show on Woo pages';    } else {       echo 'This will show on WP pages';    } } 

PHP: Haga algo si está en el carrito/pago

 add_action( 'woocommerce_sidebar', 'bbloomer_cart_checkout' );  function bbloomer_cart_checkout() {    if ( is_cart() ) {       echo 'This will show on the Cart sidebar';    } elseif ( is_checkout() ) {       echo 'This will show on the Checkout sidebar';    } } 

PHP: Haga algo si está en la página de pago de la orden de pago

 add_action( 'hook', 'bbloomer_orderpay' );  function bbloomer_orderpay() {    if ( is_checkout_pay_page() ) {       echo 'This will show on Order Pay page';    } else {       echo 'This will show on all other pages';    } } 

PHP: Haz algo si en mis páginas de cuenta

 add_action( 'hook', 'bbloomer_myaccount' );  function bbloomer_myaccount() {    if ( is_account_page() ) {       echo 'This will show on My Account pages';    } else {       echo 'This will show on pages different than My Account';    } } 

PHP: Haga algo si está en la página de gracias

Podrías ejecutar fácilmente funciones en la página de agradecimiento usando el WooCommerce_Thankyou gancho:

 add_action( 'woocommerce_thankyou', 'bbloomer_run_function_thankyou_page' );   function bbloomer_run_function_thankyou_page() {    // whatever } 

De lo contrario, puede usar otro condicional, para que sepa que está en el «punto final de la página de agradecimiento»:

 add_action( 'wp_head', 'bbloomer_run_function_thankyoupage' );  function bbloomer_run_function_thankyoupage() {    if ( is_wc_endpoint_url( 'order-received' ) {       // whatever    } } 

Deja una respuesta

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