- Stato
- Risolto
- Risolto in
- 4.12.0
- Plugin/tema correlato
- WooCommerce Dynamic Pricing
Panoramica del problema
Quando utilizzi la funzionalità Advanced Category Pricing del plugin WooCommerce Dynamic Pricing, gli sconti non vengono applicati ai prodotti variabili (solo ai prodotti semplici).
Soluzione alternativa
Abbiamo già una correzione permanente per il problema, in attesa di test completi e della versione. Nel frattempo, puoi usare la seguente soluzione alternativa per risolvere il problema sul tuo sito:
- Fai un backup completo del tuo sito prima di procedere.
- Apri wp-content/plugins/woocommerce-multilingual/compatibility/class-wcml-dynamic-pricing.php e trova la riga 118.
- Sostituisci questo:
public function woocommerce_dynamic_pricing_is_applied_to( $process_discounts, WC_Product $_product, $module_id, $dynamic_pricing, $cat_ids ) { if ( ! $_product || ! $cat_ids || ! $this->has_requirements( $dynamic_pricing ) ) { return $process_discounts; } $taxonomy = $this->get_taxonomy( $dynamic_pricing ); $product_id = apply_filters( 'wpml_object_id', $_product->get_id(), 'product', true ); return is_object_in_term( $product_id, $taxonomy, $this->adjust_cat_ids( $cat_ids, $taxonomy ) ); }Con
public function woocommerce_dynamic_pricing_is_applied_to( $process_discounts, WC_Product $_product, $module_id, $dynamic_pricing, $cat_ids ) { if ( ! $_product || ! $cat_ids || ! $this->has_requirements( $dynamic_pricing ) ) { return $process_discounts; } $taxonomy = $this->get_taxonomy( $dynamic_pricing ); $product_id = apply_filters( 'wpml_object_id', $_product->get_id(), 'product', true ); //fix for variable products if ($_product->post_type === "product_variation") { $product_id = wc_get_product( $_product->get_parent_id() )->get_id(); $product_id = apply_filters( 'wpml_object_id', $product_id, 'product', true ); return is_object_in_term( $product_id, $taxonomy, $this->adjust_cat_ids( $cat_ids, $taxonomy ) ); } return is_object_in_term( $product_id, $taxonomy, $this->adjust_cat_ids( $cat_ids, $taxonomy ) ); }