Ich möchte den Produktverkaufspreis programmatisch in WooCommerce 3 festlegen, aber nur für bestimmte Produkt-IDs.
Ist das möglich und wie kann ich mit diesem Thread-Code nur auf bestimmte Produkte abzielen?
Ich habe es nicht geschafft, dass es nur für bestimmte Produkte funktioniert.
Jede Hilfe ist willkommen.
So legen Sie nur den Verkaufspreis eines bestimmten Produkts fest (die Produkt-IDs werden in der 1. Funktion definiert)Versuche dies:
// HERE below in the array set your specific product IDs
function specific_product_ids(){
return array(37, 43, 57); // <=== <=== <=== <=== Your Product IDs
}
// Generating dynamically the product "regular price"
add_filter( 'woocommerce_product_get_regular_price', 'custom_dynamic_regular_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_regular_price', 'custom_dynamic_regular_price', 10, 2 );
function custom_dynamic_regular_price( $regular_price, $product ) {
if( ( empty($regular_price) || $regular_price == 0 ) && in_array($product->get_id(), specific_product_ids() ) )
return $product->get_price();
else
return $regular_price;
}
// Generating dynamically the product "sale price"
add_filter( 'woocommerce_product_get_sale_price', 'custom_dynamic_sale_price', 10, 2 );
add_filter( 'woocommerce_product_variation_get_sale_price', 'custom_dynamic_sale_price', 10, 2 );
function custom_dynamic_sale_price( $sale_price, $product ) {
$rate = 0.8;
if( ( empty($regular_price) || $regular_price == 0 ) && in_array($product->get_id(), specific_product_ids() ) )
return $product->get_regular_price() * $rate;
else
return $sale_price;
};
// Displayed formatted regular price + sale price
add_filter( 'woocommerce_get_price_html', 'custom_dynamic_sale_price_html', 20, 2 );
function custom_dynamic_sale_price_html( $price_html, $product ) {
if( $product->is_type('variable') ) return $price_html;
if( in_array($product->get_id(), specific_product_ids() ) ) {
$price_html = wc_format_sale_price( wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ), wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) ) ) . $product->get_price_suffix();
}
return $price_html;
}
Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (aktives Design) eingefügt.
Die Fortsetzung in:
Legen Sie nur für bestimmte Produkte den generierten Verkaufspreis im Woocommerce-Warenkorb fest