Legen Sie in WooCommerce 3 programmgesteuert nur den Verkaufspreis für bestimmte Produkte fest

Lesezeit: 2 Minuten

Legen Sie den vom Warenkorbartikel generierten Verkaufspreis nur fur bestimmte
Omri Weiss

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.

Legen Sie in WooCommerce 3 programmgesteuert nur den Verkaufspreis fur
LoicTheAztec

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

  • Danke hat funktioniert! Ich habe 2 Folgefragen zu einer anderen Frage, können Sie sie bitte beantworten?

    – Omri Weiss

    28. September 2018 um 22:31 Uhr

  • funktioniert fast perfekt 🙂 Ich habe ein variables Produkt und möchte eine Variation reduzieren. auf der produktseite sieht alles gut aus, aber im archiv steht immer noch “ab xxx euro” … wenn ich der variante manuell einen verkaufspreis hinzufüge, ändert sich auch dieser preis. also fehlt mir hier wohl ein filter … aber welcher? ! 🙂 Danke!! @loicTheAztec

    – Ele

    11. Oktober 2019 um 8:14 Uhr


1004430cookie-checkLegen Sie in WooCommerce 3 programmgesteuert nur den Verkaufspreis für bestimmte Produkte fest

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy