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

Hay momentos en que la configuración de edición de la página del producto no es suficiente. Sí, generalmente establece el precio regular y de venta a través de los campos de precios bajo «datos del producto»; Sin embargo, a veces es posible que tenga que anular esos precios a través del código, porque está ejecutando una promoción especial, no desea cambiar manualmente miles de precios o tal vez necesite mostrar diferentes valores a los clientes solo.

De cualquier manera, «configurar» el precio del producto consta de dos operaciones distintas. Primero, debe cambiar la «pantalla» del precio del producto en páginas individuales y de bucle; En segundo lugar, en realidad necesita establecer un precio de «artículo de carrito», porque el código anterior realmente no altera los valores de los precios.

Como de costumbre, más fácil de ser codificado que dicho, así que veamos cómo se hace. ¡Disfrutar!

Esta es una captura de pantalla de la página de producto único después de aplicar el descuento del 20% a los clientes registrados solamente. El precio original era de $ 34

Php Snippet: alterar el precio del producto programáticamente @ WooCommerce Frontend

Por ejemplo, en el fragmento a continuación cambiaremos el precio de una ID de producto solo si el usuario está iniciado y es un cliente registrado. Por supuesto, puede aplicar la misma estrategia a diferentes escenarios de casos, por ejemplo, los precios de cambio para una categoría de producto específica, aplicar un recargo a todos los productos por debajo de $ 10, y así sucesivamente. Las aplicaciones son infinitas.

Nota: Esto ahora es compatible con Simple y Variable productos.

 /**  * @snippet       Alter Product Pricing Part 1 - WooCommerce Product  * @how-to        businessbloomer.com/woocommerce-customization  * @author        Rodolfo Melogli, Business Bloomer  * @compatible    WooCommerce 8  * @community     https://businessbloomer.com/club/  */  add_filter( 'woocommerce_get_price_html', 'bbloomer_alter_price_display', 9999, 2 );  function bbloomer_alter_price_display( $price, $product ) {      // ONLY ON FRONTEND     if ( is_admin() ) return $price;      // ONLY IF PRICE NOT NULL     if ( '' === $product->get_price() ) return $price;      // IF CUSTOMER LOGGED IN, APPLY 20% DISCOUNT     if ( wc_current_user_has_role( 'customer' ) ) {         if ( $product->is_type( 'simple' ) || $product->is_type( 'variation' ) ) { if ( $product->is_on_sale() ) { $price = wc_format_sale_price( wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ) * 0.80, wc_get_price_to_display( $product ) * 0.80 ) . $product->get_price_suffix(); } else { $price = wc_price( wc_get_price_to_display( $product ) * 0.80 ) . $product->get_price_suffix(); } } elseif ( $product->is_type( 'variable' ) ) { $prices = $product->get_variation_prices( true ); if ( empty( $prices['price'] ) ) { $price = apply_filters( 'woocommerce_variable_empty_price_html', '', $product ); } else { $min_price = current( $prices['price'] ); $max_price = end( $prices['price'] ); $min_reg_price = current( $prices['regular_price'] ); $max_reg_price = end( $prices['regular_price'] ); if ( $min_price !== $max_price ) { $price = wc_format_price_range( $min_price * 0.80, $max_price * 0.80 ); } elseif ( $product->is_on_sale() && $min_reg_price === $max_reg_price ) { $price = wc_format_sale_price( wc_price( $max_reg_price * 0.80 ), wc_price( $min_price * 0.80 ) ); } else { $price = wc_price( $min_price * 0.80 ); } $price = apply_filters( 'woocommerce_variable_price_html', $price . $product->get_price_suffix(), $product ); } }     }      return $price;  }  /**  * @snippet       Alter Product Pricing Part 2 - WooCommerce Cart/Checkout  * @how-to        businessbloomer.com/woocommerce-customization  * @author        Rodolfo Melogli, Business Bloomer  * @compatible    WooCommerce 8  * @community     https://businessbloomer.com/club/  */  add_action( 'woocommerce_before_calculate_totals', 'bbloomer_alter_price_cart', 9999 );  function bbloomer_alter_price_cart( $cart ) {      if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;      if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;      // IF CUSTOMER NOT LOGGED IN, DONT APPLY DISCOUNT     if ( ! wc_current_user_has_role( 'customer' ) ) return;      // LOOP THROUGH CART ITEMS & APPLY 20% DISCOUNT     foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {         $product = $cart_item['data'];         $price = $product->get_price();         $cart_item['data']->set_price( $price * 0.80 );     }  } 

Y aquí está la captura de pantalla del mismo producto, en el modo de salida. Esto muestra el precio del producto original ($ 34) según la configuración de WooCommerce. Se muestra para todos los usuarios no registrados y también para todos los usuarios registrados que no son «clientes»:

Deja una respuesta

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