Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

250
Visualizações
Cupón con 2 descuentos de productos fijos diferentes basados en ID de productos en WooCommerce

He encontrado

Cupón con 2 porcentajes de descuento diferentes según la categoría del producto en Woocommerce

Que muestra cómo alterar el % de descuento para categorías establecidas. Quiero implementar un código de descuento de verano en mi tienda que ofrece un descuento de £ 20 en una selección de productos.

El código de cupón summer21 está configurado para aplicar un descuento de producto fijo solo en las siguientes ID de producto permitidas

  • 2523, 119800, 119886 y 120253

En 3 de los 4 se debe aplicar un descuento de £ 20

Pero si el ID del producto = 119886, entonces solo se deben descontar £ 10


Intenté modificar el código a lo siguiente, pero desafortunadamente sin el resultado deseado. ¿Qué me estoy perdiendo?

 add_filter( 'woocommerce_coupon_get_discount_amount', 'alter_shop_coupon_data', 20, 5 ); function alter_shop_coupon_data( $round, $discounting_amount, $cart_item, $single, $coupon ){ ## ---- Your settings ---- ## // Related coupons codes to be defined in this array (you can set many) $coupon_codes = array('Summer21'); // Product categories for only £10 discount (IDs, Slugs or Names) $product_category10 = array('119886'); // for £10 discount $second_discount = 10; // £10 ## ---- The code: Changing the discount to £10 for specific products ---- ## if ( $coupon->is_type('fixed_product') && in_array( $coupon->get_code(), $coupon_codes ) ) { if( has_term( $product_category10, 'product_cat', $cart_item['product_id'] ) ){ $discount = $discounting_amount - $second_discount; $round = round( min( $discount, $discounting_amount ), wc_get_rounding_precision() ); } } return $round; }

Este código también solo cambia el precio del carrito, pero no muestra los precios de visualización correctos en las páginas del producto.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Su código contiene varios errores.

  • has_term() no es aplicable, estamos usando in_array() en su lugar
  • No se tiene en cuenta la cantidad de artículos del carrito por producto.

Para que esta respuesta funcione, aplicamos algunos pasos

Primer paso, configuración de cupones:

  • Título: verano21
  • General > Tipo de descuento: Descuento de producto fijo
  • General > Importe del cupón: 20
  • Restricción de uso > Productos: donde productID: 2523, 119800, 119886, 120253

Segundo paso, configuración dentro de la función de código:

  • Códigos de cupón: establezca su código de cupón en minúsculas
  • ID de producto, para el segundo descuento: 119886
  • Establecer el segundo descuento: 10

Entonces obtienes:

 function filter_woocommerce_coupon_get_discount_amount( $round, $discounting_amount, $cart_item, $single, $coupon ) { // Related coupons codes to be defined in this array $coupon_codes = array( 'summer21' ); // Product IDs, for second discount $product_ids = array( 119886 ); // Second discount $second_discount = 10; // Changing the discount for specific product Ids if ( $coupon->is_type('fixed_product') && in_array( $coupon->get_code(), $coupon_codes ) ) { // Search for product ID in array product IDs if ( in_array( $cart_item['product_id'], $product_ids ) ) { // Get cart item quantity $cart_item_qty = is_null( $cart_item ) ? 1 : $cart_item['quantity']; // Discount $discount = $coupon->get_amount() - $second_discount; $discount = $single ? $discount : $discount * $cart_item_qty; $round = round( min( $discount, $discounting_amount ), wc_get_rounding_precision() ); } } return $round; } add_filter( 'woocommerce_coupon_get_discount_amount', 'filter_woocommerce_coupon_get_discount_amount', 10, 5 );
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda