Wie erhalte ich in Woocommerce den Preis neben jeder Variante?

Lesezeit: 2 Minuten

Benutzeravatar von BB admn
BB-Verwaltung

Ich verwende das neueste WC und möchte unbedingt, dass die Preise neben jeder Variante angezeigt werden, um eine bessere Übersicht zu erhalten.

Ich habe Probleme, den richtigen Code für meine functions.php zu finden, um Preise neben jeder Variante anzuzeigen. Ich habe mehrere ältere Beiträge gesehen und keiner von ihnen hat wirklich funktioniert.

Folgendes habe ich versucht:

add_filter( 'woocommerce_variation_option_name', 'display_price_in_variation_option_name' );

function display_price_in_variation_option_name( $term ) {
    global $wpdb, $product;

    if ( empty( $term ) ) return $term;
    if ( empty( $product->id ) ) return $term;

    $result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name="$term"" );

    $term_slug = ( !empty( $result ) ) ? $result[0] : $term;

    $query = "SELECT postmeta.post_id AS product_id
                FROM {$wpdb->prefix}postmeta AS postmeta
                    LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id )
                WHERE postmeta.meta_key LIKE 'attribute_%'
                    AND postmeta.meta_value="$term_slug"
                    AND products.post_parent = $product->id";

    $variation_id = $wpdb->get_col( $query );

    $parent = wp_get_post_parent_id( $variation_id[0] );

    if ( $parent > 0 ) {
         $_product = new WC_Product_Variation( $variation_id[0] );
         return $term . ' (' . wp_kses( woocommerce_price( $_product->get_price() ), array() ) . ')';
    }
    return $term;

}

Dieser hat nicht funktioniert. Ich konnte keine Änderungen feststellen, nachdem ich die eine oder andere Methode implementiert hatte. Aber es ist für ältere Versionen von WC, obwohl ich langsam glaube, dass mein Thema es irgendwie blockiert. Ich benutze Shopera.

Benutzeravatar von hemnath mouli
hemnath mouli

Da es kein id-Argument gibt woocommerce_variation_option_namekönnten wir dies mit Skript tun.

add_action( "wp_head", "function_to_woo_script" );

function function_to_woo_script () {
    ?>
    <script>
    $ = jQuery;
    $(document).ready(function(){
        var json_product    =   jQuery.parseJSON( $(".variations_form").attr("data-product_variations") );
        var currency    =   "$";
        for( i = 0; i < json_product.length; i++ ) {
            var attr_name   =   $(".variations select").attr("data-attribute_name");
            $(".variations select option[value=""+json_product[i].attributes[attr_name]+""]").html( json_product[i].attributes[attr_name] + " - " + currency + json_product[i].display_regular_price );
        }
    });
    </script>
    <?php 
}

Ergebnis

jREi6

  • Danke @Hemnath Würdest du es so in die funktions.php einfügen wie es ist?

    – BB-Verwaltung

    2. Januar 2017 um 17:21 Uhr

  • Ich habe meine Antwort bearbeitet. Sie können diesen Code zu Ihrer functions.php hinzufügen

    – hemnath mouli

    2. Januar 2017 um 17:48 Uhr

  • Genial! Vielen Dank! Leider blockiert mein Thema es und meine Fähigkeiten sind nicht gut genug, um wirklich zu verstehen, warum? Irgendeine Idee? Ich benutze Shopera auf istikbal.dk.

    – BB-Verwaltung

    2. Januar 2017 um 19:53 Uhr

1435570cookie-checkWie erhalte ich in Woocommerce den Preis neben jeder Variante?

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

Privacy policy