• Gelöst frauwindy

    (@frauwindy)


    Hallo zusammen,
    ich habe die Sortierung in meinem Woocommerce Shop umgestellt auf Lagerbestand bzw. so, dass lagernde Produkte zuerst angezeigt werden:
    https://de.wordpress.org/support/topic/produktsortierung-nach-lagerbestand/

    Das funktioniert gut, wenn ausgewählt wird „Nach Beliebtheit sortiert“; nun möchte ich aber diese Sortierfunktion umbenennen in „Nach Lagerbestand sortiert“.
    Wie und wo kann ich das machen? Auch in der functions.php oder im Customs CSS?

    Vielen Dank für euren Input.

    Eintrag in der functions.php:

    add_filter(‚posts_clauses‘, ‚order_by_stock_status‘);
    function order_by_stock_status($posts_clauses) {
    global $wpdb;
    // only change query on WooCommerce loops
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
    $posts_clauses[‚join‘] .= “ INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) „;
    $posts_clauses[‚orderby‘] = “ istockstatus.meta_value ASC, “ . $posts_clauses[‚orderby‘];
    $posts_clauses[‚where‘] = “ AND istockstatus.meta_key = ‚_stock_status‘ AND istockstatus.meta_value <> “ “ . $posts_clauses[‚where‘];
    }
    return $posts_clauses;

    • Dieses Thema wurde geändert vor 10 Monaten, 4 Wochen von frauwindy.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)
  • Hi,

    eine kurze Suche ergab folgenden Link:

    https://rudrastyh.com/woocommerce/sorting-options.html#rename-options

    Viele Grüße,
    Ray

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Bei der dort vorgeschlagenen Lösung verstehe ich nicht, wieso ein so komplizierter Weg gewählt wird, um die Reihenfolge im Pulldown-Menü beizubehalten. Etwas einfacher erscheint mir eine Ersetzung im Array (ohne vorheriges Löschen mit unset):

    add_filter( 'woocommerce_catalog_orderby', 'my_rename_default_sorting_options' );
    
    function my_rename_default_sorting_options( $options ){
      $options[ 'popularity' ] = 'Nach Lagerbestand sortiert';
    
      return $options;
    }
    Moderator threadi

    (@threadi)

    Das sind aber 2 inhaltlich völlig unterschiedliche Beschriftungen. Du müsstest nicht nur den Text ändern sondern auch die Funktion dahinter.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    @threadi Ich stehe gerade auf dem Schlauch: die Thread-Erstellerin wollte doch den Text des Pulldown-Menüs von „Nach Beliebtheit sortiert“ in „Nach Lagerbestand sortiert“ geändert haben, um eine Code-Anpassung auch im Menü umzusetzen?

    Moderator threadi

    (@threadi)

    Das hatte ich oben nicht so ganz rausgelesen. Finde es ungewöhnlich ein Sortieroption zu verändern statt eine neue einzutragen. Aber geht natürlich auch so.

    Die Beschriftung sollte in dem Fall auch über die Sprachdatei von WooCommerce anpassbar sein. Kann man mit Loco Translate ganz gut machen.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Das war mein erster Ansatz, allerdings nicht mit Loco Translate, sondern mit dem gettext-Hook. Ich gehe aber davon aus, dass die Ersetzung des Menüeintrags eine bessere Performance hat.

    Thread-Starter frauwindy

    (@frauwindy)

    @pixolin Vielen Dank! Es hat geklappt mit der Ersetzung!

    Klasse, wie einem hier immer geholfen wird 🙂

    LG Regine

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Danke für die Rückmeldung und viel Erfolg mit der Website.

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)
  • Das Thema „„Nach Beliebtheit sortiert“ umbenennen“ ist für neue Antworten geschlossen.