„Verkaufsabzeichen anzeigen, ohne den Verkaufspreis auf Woocommerce anzuzeigen'
P粉590929392
P粉590929392 2024-01-07 13:59:13
0
1
651

Ich entwickle Woocommerce auf WordPress und möchte einige Verkaufsabzeichen erstellen, aber den Verkaufspreis ignorieren (nur den regulären Preis).

Ich habe das ein paar Mal versucht, aber das „Promotion Badge“ erscheint nur, wenn ich die Nummer auf den Verkaufspreis des Produkts gebe

Ich verwende den folgenden Code

add_filter('woocommerce_sale_flash', 'woocommerce_custom_sale_text', 10, 3);
function woocommerce_custom_sale_text($text, $post, $_product)
{
    global $post,$product;
    if ( ! $product->is_in_stock() ) return;
    $sale_price = get_post_meta( $product->id, '_price', true);
    $regular_price = get_post_meta( $product->id, '_regular_price', true);
    if (has_term('one', 'product_cat', $product->ID)) {
        return '<span class="onsale">one</span>';
    } elseif (has_term('two', 'product_cat', $product->ID)) {
        return '<span class="onsale">two</span>';
    } elseif (has_term('three', 'product_cat', $product->ID) || empty($sale_price)) {
        return '<span class="onsale">three</span>';
    }
    return '<span class="onsale">Sale</span>';
}

P粉590929392
P粉590929392

Antworte allen(1)
P粉713866425

过滤器本身仅在产品促销时应用。

您需要覆盖在检查产品是否在促销之前发生的闪购操作。

首先,删除核心的闪购挂钩。

remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 );
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );

然后,添加您的自定义销售功能。

add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_custom_sale_text', 10 );
add_action( 'woocommerce_before_single_product_summary', 'woocommerce_custom_sale_text', 10 );

然后使用echo而不是return

function woocommerce_custom_sale_text()
{
    global $post,$product;
    if ( ! $product->is_in_stock() ) return;
    $sale_price = get_post_meta( $product->id, '_price', true);
    $regular_price = get_post_meta( $product->id, '_regular_price', true);
    if (has_term('one', 'product_cat', $product->ID)) {
        echo 'one';
    } elseif (has_term('two', 'product_cat', $product->ID)) {
        echo 'two';
    } elseif (has_term('three', 'product_cat', $product->ID) || empty($sale_price)) {
        echo 'three';
    }
    echo 'Sale';
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage