Sie müssen den Code in die Datei functions.php Ihres Child-Themes einfügen oder über ein Plugin, mit dem Sie benutzerdefinierte Funktionen hinzufügen können, wie z. B. das Plugin Code snippets. Bitte fügen Sie den benutzerdefinierten Code nicht direkt in die Datei functions.php Ihres übergeordneten Themes ein, da er bei einer Aktualisierung des Themes vollständig gelöscht wird.
Dies sind die Produktdaten-Registerkarten, die auf der Produktseite des Themes angezeigt werden.
Löschen von Registerkarten
Verwenden Sie das folgende Snippet, um bestimmte Registerkarten zu löschen:
/**
* Remove product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
function woo_remove_product_tabs( $tabs ) {
unset( $tabs['description'] ); // Remove the description tab
unset( $tabs['reviews'] ); // Remove the reviews tab
unset( $tabs['additional_information'] ); // Remove the additional information tab
return $tabs;
}
Umbenennen von Registerkarten
Verwenden Sie das folgende Snippet, um Registerkarten umzubenennen:
/**
* Rename product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
$tabs['description']['title'] = __( 'More Information' ); // Rename the description tab
$tabs['reviews']['title'] = __( 'Ratings' ); // Rename the reviews tab
$tabs['additional_information']['title'] = __( 'Product Data' ); // Rename the additional information tab
return $tabs;
}
Ändern der Reihenfolge der Registerkarten
Verwenden Sie das folgende Snippet, um Registerkarten umzubenennen:
/**
* Rename product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
$tabs['description']['title'] = __( 'More Information' ); // Rename the description tab
$tabs['reviews']['title'] = __( 'Ratings' ); // Rename the reviews tab
$tabs['additional_information']['title'] = __( 'Product Data' ); // Rename the additional information tab
return $tabs;
}
Ändern der Reihenfolge der Registerkarten
Verwenden Sie das folgende Snippet, um die Reihenfolge der Registerkarten zu ändern:
/**
* Reorder product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 );
function woo_reorder_tabs( $tabs ) {
$tabs['reviews']['priority'] = 5; // Reviews first
$tabs['description']['priority'] = 10; // Description second
$tabs['additional_information']['priority'] = 15; // Additional information third
return $tabs;
}
Anpassen der Registerkarte
Der folgende Ausschnitt ersetzt die Registerkarte Beschreibung durch eine benutzerdefinierte Funktion:
/**
* Customize product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_custom_description_tab', 98 );
function woo_custom_description_tab( $tabs ) {
$tabs['description']['callback'] = 'woo_custom_description_tab_content'; // Custom description callback
return $tabs;
}
function woo_custom_description_tab_content() {
echo '<h2>Custom Description</h2>';
echo '<p>Here\'s a custom description</p>';
}
Hinzufügen einer benutzerdefinierten Registerkarte
Verwenden Sie das folgende Snippet, um eine benutzerdefinierte globale Produktregisterkarte hinzuzufügen:
/**
* Add a custom product data tab
*/
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
// Adds the new tab
$tabs['test_tab'] = array(
'title' => __( 'New Product Tab', 'woocommerce' ),
'priority' => 50,
'callback' => 'woo_new_product_tab_content'
);
return $tabs;
}
function woo_new_product_tab_content() {
// The new tab content
echo '<h2>New Product Tab</h2>';
echo '<p>Here\'s your new product tab.</p>';
}
Registerkarte Zusätzliche Informationen
Beachten Sie, dass die Registerkarte „Zusätzliche Informationen“ nur angezeigt wird, wenn das Produkt Gewichte, Abmessungen oder Attribute hat (und das Kontrollkästchen „Auf der Produktseite sichtbar“ aktiviert ist). Wenn Sie versuchen, eine Änderung auf dieser Registerkarte vorzunehmen und das Produkt keine Gewichte, Abmessungen oder Attribute hat, erhalten Sie eine Fehlermeldung ähnlich der folgenden:
Warning: call_user_func() erwartet, dass Parameter 1 ein gültiger Callback ist, Array oder String nicht angegeben in /mysite/wp-content/plugins/woocommerce/templates/single-product/tabs/tabs/tabs.php auf Zeile 35.
In diesem Fall müssen Sie WooCommerce bedingte Tags verwenden:
has_attributes()
has_dimensions()
has_weight()
/**
* Check if product has attributes, dimensions or weight to override the call_user_func() expects parameter 1 to be a valid callback error when changing the additional tab
*/
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
global $product;
if( $product->has_attributes() || $product->has_dimensions() || $product->has_weight() ) { // Check if product has attributes, dimensions or weight
$tabs['additional_information']['title'] = __( 'Product Data' ); // Rename the additional information tab
}
return $tabs;
}