• Zur Hauptnavigation springen
  • Skip to main content
  • Zur Hauptsidebar springen
  • Zur Fußzeile springen
Logo

impressive pages: Webdesign und eCommerce

  • Start
  • Blog
  • Hosting
  • Kontakt

Blog

Bewertungen für alle Produkte in WooCommerce aktivieren (bulk)

13. November 2021 Kommentar verfassen

Bewertungen bei allen Produkten aktivieren geht programmatisch mit folgendem Code:

add_action('admin_init', 'iphf_enable_reviews');

function iphf_enable_reviews() {

    $args = array(
        'post_type'   => 'product',
        'numberposts' => -1,
        'comment_status' => 'closed',
        'post_status' => 'publish',
    );

    $shop_products = get_posts( $args );
    foreach( $shop_products as $item){
        $product = new WC_Product($item->ID);
        wp_update_post( array(
            'ID'    => $item->ID,
            'comment_status' => 'open',
        ) );
    }
}

Diesen Code in die functions.php einfügen oder als Plugin einsetzen und einmalig das Admin-Panel öffnen. Danach sollten alle Produkte Bewertungen (Reviews) aktiviert haben. Anschließend kann der Code wieder entfernt werden.

Kategorie: WooCommerce

Website-URL-Feld aus dem WordPress-Kommentarformular entfernen

12. November 2021 Kommentar verfassen

Möchte man das URL-Feld aus dem Kommentarformular von WordPress entfernen, so geht das über folgenden Code-Snippet:

add_filter('comment_form_default_fields', 'unset_url_field');
function unset_url_field($fields){
    if(isset($fields['url'])) {
       unset($fields['url']);
    }

    return $fields;
}

Kategorie: Entwicklung, WordPress

WooCommerce-Produktseite ohne Registerkarten (Tabs), sondern alles untereinander

11. November 2021 Kommentar verfassen

Tabs auf WooCommerce-Produktseite
Es geht um diese Tabs, die auf der Produktseite angezeigt werden

Um die Tabs (Beschreibung, Zusätzliche Informationen und Bewertungen) auf der Produktseite in WooCommerce zu entfernen bzw. alle Informationen untereinander zu platzieren nutzen wir folgenden ein kurzes Code-Snippet.

Im Standard zeigt WooCommerce separate Tabs für Beschreibung, Zusätzliche Informationen und Bewertungen auf der Produktseite an. Manchmal ist es sinnvoll aus Usability-Gründen auf Tabs zu verzichten. Amazon und andere große Shop zeigen auch den Inhalt untereinander statt in Tabs. Der Ansatz kommt aus dem mobile-Bereich und wir haben uns mittlerweile sehr daran gewöhnt. Es ist nicht verkehrt sich an den großen zu orientieren, da sie oft bereits viel in die Optimierung ihrer Auftritte gesteckt haben und die potentiellen Besucher sich bereits daran gewöhnt haben.

function woocommerce_output_product_data_tabs() {
	$product_tabs = apply_filters( 'woocommerce_product_tabs', array() );
	
	if ( empty( $product_tabs ) ) return;
	
	echo '<div class="woocommerce-tabs wc-tabs-wrapper">';
	foreach ( $product_tabs as $key => $product_tab ) {
		echo '<div id="tab-' . esc_attr( $key ) . '">';
		if ( isset( $product_tab['callback'] ) ) {
			call_user_func( $product_tab['callback'], $key, $product_tab );
		}
		echo '</div>';
	}
	echo '</div>';
}
WooCommerce-Produktseite Tabs untereinander

Wie hier im Beispiel zu sehen, stehen alle Informationen untereinander und die Tab-Leiste (wie oben dargestellt) ist nicht sichtbar.

Das verschafft dem Besucher oder der Besucherin die Übersicht über alle Informationen auf einen Blick.

Was gefällt Ihnen besser mit Tabs oder untereinander?

Alternative Lösung

Alternativ gibt es noch diese Lösung bei gist.github.com. Diese hat den Nachteil, dass die leeren DIVs trotzdem angezeigt werden, auch wenn kein Inhalt da ist. Das lässt sich in dem Code natürlich auch lösen. Bei der o. g. Lösung werden Tab-Inhalte nur eingebunden, wenn sie auch verfügbar sind.

Kategorie: Entwicklung, WordPress

WooCommerce-Produktbeschreibung (full product description) als Meta-Description in WordPress

9. November 2021 Kommentar verfassen

Mithilfe von YOAST ist es möglich die Produktbeschreibung als Meta-Description anzuzeigen. Das geht über den programmatischen Weg wie folgt:

Folgenden Code als Snippet in functions.php des Themes oder mithilfe eines Plugins einfügen.

// callback für Ersetzung in YOAST SEO 
function get_fullDescription() {
    global $post;
    return $post != null ? $post->post_content : "";
}

// Registriere eigene YOAST-Variablenersetzung
function register_custom_yoast_variables() {
    wpseo_register_var_replacement( '%%fulldes%%', 'get_fullDescription', 'advanced', 'Full Description' );
}

// YOAST-Variablenersetzung bekannt machen
add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

Danach unter WordPress -> SEO -> Darstellung in Suchergebnissen -> Produkte %%fulldes%% unter Meta description eintragen. Speichern nicht vergessen!

Unter SEO -> Darstellung in Suchergebnissen -> Produkte -> Meta description %%fulldes%% eintragen. YOAST ersetzt die Variable durch den Variablennamen.

Nun wird aber die komplette Beschreibung verwendet. Schöner wäre jedoch die Längenvorgabe für Meta-Descriptions der Suchmaschinen zu beachten. Diese liegt bei maximal 160 Zeichen.

Dazu benötigen wir zwei weitere Funktionen. Mit der untenstehenden Funktion replaceHtmlTags ersetzen wir ggf. vorhandene HTML-Tags in der Beschreibung, denn die möchten wir in unserer Meta-Description nicht haben. Mit der zweiten Funktion wordTruncate erreichen wir die Längenvorgabe. Der Code sorgt dafür, dass nicht einfach nur nach 160 Zeichen getrennt wird und damit evtl. mitten im Wort abgeschnitten wird, sondern es wird nach dem letzten Wort abgeschnitten das noch innerhalb der 160 Zeichen liegt.

function replaceHtmlTags($string) {
	return preg_replace("/<.*?>/", "", $string);
}

function wordTruncate($string, $desired_max_width) {
  $parts = preg_split('/([\s\n\r]+)/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
  $parts_count = count($parts);

  $length = 0;
  $last_part = 0;
  for (; $last_part < $parts_count; ++$last_part) {
    $length += strlen($parts[$last_part]);
    if ($length > $desired_max_width) { break; }
  }

  return implode(array_slice($parts, 0, $last_part));
}

Die Routine get_fullDescription aus dem Code oben wird nochmal etwas modifiziert und sieht damit so aus:

// callback für Ersetzung in YOAST SEO 
function get_fullDescription() {
    global $post;
    return wordTruncate(replaceHtmlTags($post->post_content), 160);
}

Der vollständige Code sieht somit so aus:

// callback für Ersetzung in YOAST SEO 
function get_fullDescription() {
    global $post;
    return wordTruncate(replaceHtmlTags($post->post_content), 160);
}

// Registriere eigene YOAST-Variablenersetzung
function register_custom_yoast_variables() {
    wpseo_register_var_replacement( '%%fulldes%%', 'get_fullDescription', 'advanced', 'Full Description' );
}

// YOAST-Variablenersetzung bekannt machen
add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

function replaceHtmlTags($string) {
	return preg_replace("/<.*?>/", "", $string);
}

function wordTruncate($string, $desired_max_width) {
  $parts = preg_split('/([\s\n\r]+)/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
  $parts_count = count($parts);

  $length = 0;
  $last_part = 0;
  for (; $last_part < $parts_count; ++$last_part) {
    $length += strlen($parts[$last_part]);
    if ($length > $desired_max_width) { break; }
  }

  return implode(array_slice($parts, 0, $last_part));
}

Somit haben wir ohne die kostenpflichtige YOAST SEO WooCommerce – Erweiterung erreicht, die Produktbeschreibung als Meta-Description anzuzeigen.

WooCommerce-Kurzbeschreibung als Meta-Description

Möchte man hingegen die Kurzbeschreibung als Meta-Description nutzen, bietet YOAST SEO die Funktion in der kostenfreien Version an, wenn auch etwas versteckt.

Um die Kurzbeschreibung als Meta-Description zu verwenden so tragen wir unter SEO -> Darstellung in Suchergebnissen -> Produkte die Variable %%wc_shortdesc%% ein.

Viel Erfolg bei Ihrem SEO-Projekt!

Haben Sie weitere Fragen oder benötigen Sie Unterstützung, gerne unterstütze ich Sie. Schreiben Sie mir ganz unverbindlich oder rufen Sie an.

impressive pages kontaktieren

Kategorie: SEO, WooCommerce, WordPress

Lösung für Google Search Console – Warnung: Feld „brand“ fehlt

28. Oktober 2021 Kommentar verfassen

Feld "brand" fehlt

Wenn man einen Shop mit WooCommerce betreibt hat man sicherlich schon die nebenstehende Meldung in Google Search Console unter Verbesserungen -> Produkte entdeckt.

Standardmäßig fügt das WooCommerce-Plugin für WordPress das „Brand“-Schema nicht zu WooCommerce Produktseiten hinzu. Das bedeutet, dass es eine Lücke im WooCommerce-Schema gibt.

Auf verschiedenen Support-Threads auf WordPress.org und Github heißt es, das lässt sich durch einen Kauf eines WooCommerce-Plugin lösen. Bei etwas so Grundlegendem wie diesem kann man zu Recht sehr frustriert sein.

Letztlich lautet die Rechtfertigung von WooCommerce, dass es sich hierbei nicht um essenzielle Teile von Schema handelt – sie erzeugen nur Warnungen in der Google Search Console, aber keine Fehler. Theoretisch sind sie also keine große Sache.

Wenn Sie jedoch diese Lücke schließen möchten, haben Sie mehrere Möglichkeiten. Es gibt „Schema-Plugins“, die Ihnen helfen, dies zu flicken – das Yoast SEO WooCommerce – Plugin füllt die Lücken für Sie – aber es ist ein bisschen übertrieben dafür ca. 70 Euro pro Jahr auszugeben. Es sei denn man hat oder benötigt es aus einem anderen wichtigen Grund. Dann hilft diese Anleitung weiter.

Viele Menschen meiden codebasierte Lösungen denn sie müssen „gewartet“ werden und gehen regelmäßig kaputt. Für eine E-Commerce-Website mit der Sie Geld verdienen, ist das also nicht so toll!

Code zur Behebung von Google Search Console – Warnung für Feld „brand“

Mit dem Code Snippets Plugin lassen sich kleine Code-Schnippsel wie der folgende in die Seite integrieren. Profis haben für solche Anpassungen ein separates Plugin oder nutzen die functions.php ihres Themes.

/*
* Füge "Brand"-Schema in die Strukturierten Daten ein
*/
function custom_woocommerce_structured_data_product ($data) {
	global $product;
	$data['brand'] = ['@type' => 'Brand', 'name' => 'Meine Marke'];
	return $data;
}
add_filter( 'woocommerce_structured_data_product', 'custom_woocommerce_structured_data_product' );

Sind Sie der Hersteller Ihrer Produkte oder führen Sie nur Waren von einer Marke, so können sie hier Ihre Marke statt „Meine Marke“ (Hochkommata müssen bleiben) einfügen.

Alternativ lässt sich die Marke auch aus der Eigenschaft Marke (Brand) mit $product->get_attribute(‚pa_brand‘) auslesen.

Das Code-Snippet sähe dann so aus:

/*
* Füge "Brand"-Schema in die Strukturierten Daten ein
*/
function custom_woocommerce_structured_data_product ($data) {
	global $product;
        $data['brand'] = ['@type' => 'Brand', 'name' => $product->get_attribute('pa_brand') ?? null];
	return $data;
}
add_filter( 'woocommerce_structured_data_product', 'custom_woocommerce_structured_data_product' );

Ich nutze bei einem Kunden eine Produkteigenschaft Hersteller. Deshalb setze ich das Feld „Brand“ mit dem Hersteller mit dem Befehl $product->get_attribute(‚pa_hersteller‘).

Um den Erfolg zu testen nutzen Sie das praktische Online-Tool von Google: Strukturierte Daten testen.

Kategorie: Google Search Console, SEO, WooCommerce

Genesis Visual Hook Guide

2. Oktober 2021 Kommentar verfassen

Der Genesis Visual Hook Guide zeigt eine Übersicht wo sich die visuellen Hooks befinden. Das ist nützlich beim Aufbau einer Webseite.

genesis visual hook guide

Der Visual Hook Guide befindet sich hier.

Kategorie: Entwicklung, Genesis-Framework

  • « Gehe zu Vorherige Seite
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to page 4
  • Gehe zu Nächste Seite »

Haupt-Sidebar

Suche

Neueste Beiträge

  • WooCommerce: Nur kostenlosen Versand anzeigen
  • In Genesis wrapper-DIVs (.wrap) entfernen
  • Automatische Updates bei WordPress mit WP-CLI
  • WordPress 5.9 „Groundbreaking Release“ kommt Ende Januar 2022
  • Thumbnails in WordPress über WP-CLI neu generieren

Kategorien

  • Entwicklung
  • Genesis-Framework
  • Google Search Console
  • Mobile
  • SEO
  • Webhosting
  • WooCommerce
  • WordPress

Archive

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021
  • August 2021
  • Juni 2021
  • April 2021
  • Impressum
  • Datenschutz

Footer

!pages
Heinrich Franz
Wilhelm-Martin-Str. 4
76356 Weingarten (Baden)
instagram
+49 160 85 40 725
info@impressive-pages.de

In meinem Blog veröffentliche ich Infos Rund um WordPress, das Genesis-Framework und SEO.

© 2022 impressive pages

  • English