- Statut
- Résolu
- Résolu dans
- 4.12.0
- Extension/thème associé
- WooCommerce Dynamic Pricing
Aperçu de l’anomalie
Lors de l’utilisation de la fonctionnalité Advanced Category Pricing de l’extension WooCommerce Dynamic Pricing, les réductions ne sont pas appliquées aux produits variables (uniquement aux produits simples).
Solution de contournement
Nous avons déjà un correctif permanent pour ce problème qui est en attente de tests complets et d’une version publiée. En attendant, vous pouvez utiliser la solution de contournement suivante pour corriger le problème sur votre site :
- Effectuez une sauvegarde complète de votre site avant de continuer.
- Ouvrez wp-content/plugins/woocommerce-multilingual/compatibility/class-wcml-dynamic-pricing.php et cherchez la ligne 118.
- Remplacez ceci :
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 ) ); }Par
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 ) ); }