Meine 25 besten WooCommerce-Snippets für WordPress

  1. 1. Derzeit lesen: Meine 25 besten WooCommerce-Snippets für WordPress
  2. 2. Meine 25 besten WooCommerce-Schnipsel für WordPress Teil 2

Die Zeit vergeht wie im Fluge … Es ist 6 Monate her, seit ich als Vollzeit-Support-Techniker bei WooCommerce für WooThemes angefangen habe. Während dieser 6 Monate habe ich viel auf WooCommerce gelernt und viel codiert (lesen viel!) von WooCommerce-bezogenen Snippets. Tatsächlich ist WooCommerce ein wirklich leistungsstarkes Tool und leicht erweiterbar. Es hat viele Haken, die für fast alles verwendet werden können, und das macht WooCommerce so gut. Hier ist eine Liste von Ausschnitten, die ich in den letzten Monaten geschrieben oder angepasst habe. Alle diese Schnipsel müssen in die Datei functions.php in Ihrem Themenordner eingefügt werden:


1 – Zahlungsart zu WooCommerce Admin Email hinzufügen

add_action ('woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2);

Funktion add_payment_method_to_admin_new_order ($ order, $ is_admin_email) {
if ($ is_admin_email) {
Echo '

Bezahlverfahren: '. $ order-> zahlungsmethode_titel. '

'; }} }}

2 – Up-Sells-Produkte pro Seite / pro Zeile

remove_action ('woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15);
add_action ('woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15);

if (! function_exists ('woocommerce_output_upsells')) {
Funktion woocommerce_output_upsells () {
woocommerce_upsell_display (3,3); // 3 Produkte in 3er-Reihen anzeigen
}}
}}

3 – Produktkategorien von der Shop-Seite entfernen

add_action ('pre_get_posts', 'custom_pre_get_posts_query');

Funktion custom_pre_get_posts_query ($ q) {

if (! $ q-> is_main_query ()) return;
if (! $ q-> is_post_type_archive ()) return;

if (! is_admin () && is_shop () &&! is_user_logged_in ()) {

$ q-> set ('tax_query', array (array (
'taxonomy' => 'product_cat',
'field' => 'slug',
'Begriffe' => Array ('Farbe', 'Geschmack', 'Gewürze', 'Vanille'), // Produkte in diesen Kategorien nicht auf der Shop-Seite anzeigen
'operator' => 'NOT IN'
)));

}}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}}

4 – Übersetzen Sie schnell eine beliebige Zeichenfolge

add_filter ('gettext', 'translate_text');
add_filter ('ngettext', 'translate_text');

Funktion translate_text ($ translate) {
$ translate = str_ireplace ('Auswählen und Option', 'Auswählen', $ übersetzt);
return $ übersetzt;
}}

5 – Schließen Sie eine Kategorie aus dem WooCommerce-Kategorie-Widget aus

add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');

Funktion woo_product_cat_widget_args ($ cat_args) {

$ cat_args ['exclude'] = array ('16 ');

return $ cat_args;
}}

6 – Fügen Sie einer Produktvariante ein benutzerdefiniertes Feld hinzu

// Felder anzeigen
add_action ('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
// JS, um Felder für neue Variationen hinzuzufügen
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// Variationsfelder speichern
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);

Funktion variable_fields ($ loop, $ Variation_data) {?>


7 - Ersetzen Sie "Nicht vorrätig" durch "verkauft"

add_filter ('woocommerce_get_availability', 'Availability_filter_func');

Funktion Availability_filter_func ($ Availability)
{
$ Availability ['Availability'] = str_ireplace ('Out of Stock', 'Sold', $ Availability ['Availability']);
$ Verfügbarkeit zurückgeben;
}}

8 - Zeigen Sie "Produkt bereits im Warenkorb" anstelle der Schaltfläche "In den Warenkorb" an

/ **
* Ändern Sie den Text zum Hinzufügen zum Warenkorb auf einzelnen Produktseiten
* /
add_filter ('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');

Funktion woo_custom_cart_button_text () {

globaler $ woocommerce;

foreach ($ woocommerce-> cart-> get_cart () als $ cart_item_key => $ values) {
$ _product = $ values ​​['data'];

if (get_the_ID () == $ _product-> id) {
return __ ('Bereits im Warenkorb - Nochmals hinzufügen?', 'Woocommerce');
}}
}}

return __ ('In den Warenkorb', 'Woocommerce');
}}

/ **
* Ändern Sie den Text zum Hinzufügen zum Warenkorb in Produktarchiven
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

Funktion woo_archive_custom_cart_button_text () {

globaler $ woocommerce;

foreach ($ woocommerce-> cart-> get_cart () als $ cart_item_key => $ values) {
$ _product = $ values ​​['data'];

if (get_the_ID () == $ _product-> id) {
return __ ('Bereits im Einkaufswagen', 'Woocommerce');
}}
}}

return __ ('In den Warenkorb', 'Woocommerce');
}}

9 - Anzahl der ausgeblendeten Produkte in der Kategorieansicht

add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');

Funktion woo_remove_category_products_count () {
Rückkehr;
}}

10 - Kontoauscheckfelder erforderlich machen

add_filter ('woocommerce_checkout_fields', 'woo_filter_account_checkout_fields');

Funktion woo_filter_account_checkout_fields ($ fields) {
$ fields ['account'] ['account_username'] ['required'] = true;
$ fields ['account'] ['account_password'] ['required'] = true;
$ fields ['account'] ['account_password-2'] ['required'] = true;

$ Felder zurückgeben;
}}

11 - Benennen Sie eine Produktregisterkarte um

add_filter ('woocommerce_product_tabs', 'woo_rename_tab', 98);
Funktion woo_rename_tab ($ tabs) {

$ tabs ['description'] ['title'] = 'Weitere Informationen';

$ tabs zurückgeben;
}}

12 - Liste der WooCommerce-Produktkategorien

$ args = array (
'number' => $ number,
'orderby' => $ orderby,
'order' => $ order,
'hide_empty' => $ hide_empty,
'include' => $ ids
);

$ product_categories = get_terms ('product_cat', $ args);

$ count = count ($ product_categories);
if ($ count> 0) {
Echo "";
}}

13 - Ersetzen Sie den Titel der Shop-Seite

add_filter ('woocommerce_page_title', 'woo_shop_page_title');

Funktion woo_shop_page_title ($ page_title) {

if ('Shop' == $ page_title) {
return "Mein neuer Titel";
}}
}}

14 - Ändern Sie einen Widget-Titel

/ *
* Ändern Sie den Widget-Titel
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);

Funktion woo_widget_title ($ title, $ instance, $ id_base) {

if ('onsale' == $ id_base) {
return "Mein neuer Titel";
}}
}}

15 - Entfernen Sie die Standardeinstellungen von WooCommerce

add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');

Funktion woo_remove_catalog_options ($ catalog) {

nicht gesetzt ($ catalog [23]); // Nullen schneiden (nein)
nicht gesetzt ($ catalog [22]); // 2 Dezimalstellen
nicht gesetzt ($ catalog [21]); // dezimal sep (.)
nicht gesetzt ($ catalog [20]); // tausend sep (,)
nicht gesetzt ($ catalog [19]); // Währungsposition (links)
nicht gesetzt ($ catalog [18]); // Währungsposition (links)
nicht gesetzt ($ catalog [5]); // Ajax in den Warenkorb legen (nein)

return $ catalog;
}}

16 - Ändern Sie die E-Mail-Adresse von

Funktion woo_custom_wp_mail_from () {
globaler $ woocommerce;
return html_entity_decode ('[email protected]');
}}
add_filter ('wp_mail_from', 'woo_custom_wp_mail_from', 99);

17 - Dekodieren Sie den Namen in der WooCommerce-E-Mail

Funktion woo_custom_wp_mail_from_name () {
globaler $ woocommerce;
return html_entity_decode (get_option ('woocommerce_email_from_name'));
}}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

Funktion woo_custom_wp_mail_from () {
globaler $ woocommerce;
return html_entity_decode (get_option ('woocommerce_email_from'));
}}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

18 - Geben Sie die IDs der vorgestellten Produkte zurück

Funktion woo_get_featured_product_ids () {
// Aus Cache laden
$ Featured_product_ids = get_transient ('wc_featured_products');

// Gültiger Cache gefunden
if (false! == $ Featured_product_ids)
return $ feature_product_ids;

$ Featured = get_posts (Array (
'post_type' => array ('product', 'product_variation'),
'posts_per_page' => -1,
'post_status' => 'veröffentlichen',
'meta_query' => array (
Array (
'key' => '_visibility',
'Wert' => Array ('Katalog', 'sichtbar'),
'compare' => 'IN'
),
Array (
'key' => '_featured',
'Wert' => 'Ja'
)
),
'Felder' => 'ID => Eltern'
));

$ product_ids = array_keys ($ Featured);
$ parent_ids = array_values ​​($ Featured);
$ feature_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));

set_transient ('wc_featured_products', $ Featured_product_ids);

return $ feature_product_ids;
}}

19 - Benutzerdefiniertes Feld zum Bearbeiten der Adressseite hinzufügen

// Felder hinzufügen, um die Adressseite zu bearbeiten
Funktion woo_add_edit_address_fields ($ fields) {

$ new_fields = array (
'date_of_birth' => array (
'label' => __ ('Geburtsdatum', 'woocommerce'),
'erforderlich' => falsch,
'class' => array ('form-row'),
),
);

$ fields = array_merge ($ fields, $ new_fields);

$ Felder zurückgeben;

}}

add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');

20 - Onsale-Produktkatalog-Shortcode anzeigen

Funktion woocommerce_sale_products ($ atts) {

global $ woocommerce_loop;

extrahieren (shortcode_atts (Array (
'per_page' => '12',
'Spalten' => '4',
'orderby' => 'date',
'order' => 'desc'
), $ atts));

$ woocommerce_loop ['Spalten'] = $ Spalten;

$ args = array (
'post_type' => 'Produkt',
'post_status' => 'veröffentlichen',
'ignore_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ orderby,
'order' => $ order,
'meta_query' => array (
Array (
'key' => '_visibility',
'Wert' => Array ('Katalog', 'sichtbar'),
'compare' => 'IN'
),
Array (
'key' => '_sale_price',
'Wert' => 0,
'compare' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('loop', 'shop');
wp_reset_query ();

return ob_get_clean ();
}}

add_shortcode ('sale_products', 'woocommerce_sale_products');

21 - Onsale-Produkte haben

Funktion woo_have_onsale_products () {

globaler $ woocommerce;

// Produkte zum Verkauf anbieten
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());

if (! empty ($ product_ids_on_sale)) {
return true;
} else {
falsch zurückgeben;
}}

}}

// Beispiel:
if (woo_have_onsale_products ()) {
Echo 'Onsale-Produkte haben';
} else {
Echo 'kein Onsale-Produkt';
}}

22 - Mindestbestellmenge einstellen

add_action ('woocommerce_checkout_process', 'wc_minimum_order_amount');
Funktion wc_minimum_order_amount () {
globaler $ woocommerce;
$ Minimum = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('Sie müssen eine Bestellung mit einem Minimum von% s haben, um Ihre Bestellung aufzugeben.', $ Minimum));
}}
}}

23 - Bestellung nach Preis, Datum oder Titel auf der Shop-Seite

add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

Funktion custom_default_catalog_orderby () {
Rückflugdatum'; // Kann auch Titel und Preis verwenden
}}

24 - Weiterleiten an die Schaltfläche zum Hinzufügen zum Warenkorb zur Checkout-Seite

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

Funktion redirect_to_checkout () {
globaler $ woocommerce;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url ();
return $ checkout_url;
}}

25 - E-Mail-Empfänger hinzufügen, wenn die Bestellung abgeschlossen ist

Funktion woo_extra_email_recipient ($ Empfänger, $ Objekt) {
$ Empfänger = $ Empfänger. ', [email protected]';
$ Empfänger zurückgeben;
}}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);

Und das ist es! Ich hoffe, Sie werden diese Schnipsel nützlich finden, sie wurden alle getestet und funktionieren alle einwandfrei. Wenn Sie jedoch Probleme haben, teilen Sie mir bitte den Kommentarbereich mit. Habe Spaß! ��

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map