Moje 25 najlepszych fragmentów WooCommerce dla WordPress Część 2

  1. 1. Moje 25 najlepszych fragmentów WooCommerce dla WordPress
  2. 2). Teraz czytam: Moje 25 najlepszych fragmentów WooCommerce dla WordPress Część 2

Kilka dni temu napisałem post, w którym wymieniłem 25 najbardziej przydatnych fragmentów WooCommerce, których używam, a było wiele osób, które prosiły o więcej, więc dziś postanowiłem podać więcej fragmentów dla WooCommerce! No to ruszamy!


1 – Zamień domyślne logo PayPal na WooCommerce

/ *
* Zastąp domyślną ikonę PayPal WooCommerce
* /
funkcja paypal_checkout_icon () {
zwróć „https://www.paypalobjects.com/webstatic/mktg/logo-center/logo_betalen_met_paypal_nl.jpg”; // wpisz tutaj swój adres URL obrazu
}
add_filter („woocommerce_paypal_icon”, „paypal_checkout_icon”);

2 – Zastąp domyślny obraz zastępczy produktu

/ *
* wchodzi w temat funkcji.php lub niestandardowej wtyczki. Zastąp nazwę pliku / ścieżkę obrazu własną  :) 
*
** /
add Działalności („init”, „custom_fix_thumbnail”);

funkcja custom_fix_thumbnail () {
add_filter ('woocommerce_placeholder_img_src', 'custom_woocommerce_placeholder_img_src');

funkcja custom_woocommerce_placeholder_img_src ($ src) {
$ upload_dir = wp_upload_dir ();
$ uploads = untrailingslashit ($ upload_dir ['baseurl']);
$ src = $ uploads. „/2012/07/thumb1.jpg”;

zwróć $ src;
}
}

3 – Usuń „Produkty” z bułki tartej

/ *
* Ukryj „Produkty” w bułce tartej WooCommerce
* /
funkcja woo_custom_filter_breadcrumbs_trail ($ trail) {
foreach ($ trail as $ k => $ v) {
if (strtolower (strip_tags ($ v)) == 'produkty') {
unset ($ trail [$ k]);
złamać;
}
}

zwrot $ szlak;
}

add_filter ('woo_breadcrumbs_trail', 'woo_custom_filter_breadcrumbs_trail', 10);

4 – Pusty wózek

/ *
* Pusty koszyk WooCommerce
* /
funkcja my_empty_cart () {
globalny $ woocommerce;
$ woocommerce-> cart-> empty_cart ();
}
add Działalności („init”, „my_empty_cart”);

5 – Automatycznie dodaj produkt do koszyka podczas wizyty

/ *
* Dodaj przedmiot do koszyka podczas wizyty
* /
funkcja add_product_to_cart () {
if (! is_admin ()) {
globalny $ woocommerce;
$ id_produktu = 64;
$ znaleziono = fałsz;
// sprawdź, czy produkt jest już w koszyku
if (sizeof ($ woocommerce-> cart-> get_cart ())> 0) {
foreach ($ woocommerce-> cart-> get_cart () as $ cart_item_key => $ values) {
$ _product = $ wartości [„dane”];
if ($ _product-> id == $ product_id)
$ znaleziono = prawda;
}
// jeśli produkt nie został znaleziony, dodaj go
if (znaleziono!)
$ woocommerce-> cart-> add_to_cart ($ product_id);
} else {
// jeśli nie ma produktów w koszyku, dodaj go
$ woocommerce-> cart-> add_to_cart ($ product_id);
}
}
}
add Działalności („init”, „add_product_to_cart”);

6 – Dodaj niestandardową walutę / symbol

add_filter („woocommerce_currencies”, „add_my_currency”);

funkcja add_my_currency ($ currencies) {
$ currencies [„ABC”] = __ („Nazwa waluty”, „woocommerce”);
zwrócić $ waluty;
}

add_filter („woocommerce_currency_symbol”, „add_my_currency_symbol”, 10, 2);

funkcja add_my_currency_symbol ($ currency_symbol, $ currency) {
przełącznik (waluta $) {
przypadek „ABC”: $ currency_symbol = „$”; złamać;
}
zwraca $ currency_symbol;
}

7 – Zmień tekst przycisku Dodaj do koszyka

/ **
* Zmień tekst dodawania do koszyka na stronach pojedynczych produktów
* /
funkcja woo_custom_cart_button_text () {
return __ („My Button Text”, „woocommerce”);
}
add_filter ('single_add_to_cart_text', 'woo_custom_cart_button_text');



/ **
* Zmień tekst dodawania do koszyka w archiwach produktów
* /
funkcja woo_archive_custom_cart_button_text () {
return __ („My Button Text”, „woocommerce”);
}
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

8 – Przekieruj subskrypcję dodaj do koszyka do strony kasy

/ **
* Subskrypcja przekierowująca dodaj do koszyka na stronę kasy
*
* @param string $ url
* /
funkcja custom_add_to_cart_redirect ($ url) {

$ product_id = (int) $ _REQUEST ['add-to-cart'];
if (class_exists ('WC_Subscriptions_Product')) {
if (WC_Subscriptions_Product :: is_subscription ($ product_id)) {
return get_permalink (get_option ('woocommerce_checkout_page_id'));
} else return $ url;
} else return $ url;

}
add_filter („add_to_cart_redirect”, „custom_add_to_cart_redirect”);

Ten fragment wymaga wtyczki Subskrypcje.

9 – Przekieruj na stronę kasy po dodaniu do koszyka

/ **
* Subskrypcja przekierowująca dodaj do koszyka na stronę kasy
*
* @param brak
* /
funkcja add_to_cart_checkout_redirect () {
wp_safe_redirect (get_permalink (get_option ('woocommerce_checkout_page_id')));
umierać();
}
działanie dodatkowe („woocommerce_add_to_cart”, „add_to_cart_checkout_redirect”, 11);

10 – CC wszystkie e-maile

 / **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Dodaj kolejnego odbiorcę wiadomości e-mail do wszystkich wiadomości e-mail WooCommerce
*
* /
funkcja woo_cc_all_emails () {
zwróć „Bcc: [email protected]”. „\ r \ n”;
}
add_filter ('woocommerce_email_headers', 'woo_cc_all_emails');

11 – Wyślij e-mail, gdy nowe zamówienie zostanie zakończone z wykorzystanymi kuponami

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Wyślij e-mail za każdym razem, gdy zamówienie z kuponem (-ami) jest zrealizowane
* Wiadomość e-mail zawiera kupony użyte podczas realizacji transakcji
*
* /
funkcja woo_email_order_coupons ($ order_id) {
$ order = new WC_Order ($ order_id);

if ($ order-> get_used_coupons ()) {

$ to = '[email protected]';
$ subject = „Nowe zamówienie zrealizowane”;
$ headers = 'From: My Name'. „\ r \ n”;

$ message = 'Nowe zamówienie zostało zrealizowane. \ n';
$ message. = 'ID zamówienia:'. $ order_id. '\ n';
$ message. = 'Wykorzystane kupony: \ n';

foreach ($ order-> get_used_coupons () jako $ kupon) {
$ message. = $ kupon. '\ n';
}
@wp_mail ($ to, $ subject, $ message, $ headers);
}
}
działanie dodatkowe („woocommerce_thankyou”, „woo_email_order_coupons”);

12 – Zmień powiązany numer produktu

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Zmień liczbę powiązanych produktów na stronie produktu
* Ustaw własną wartość dla „posts_per_page”
*
* /
funkcja woo_related_products_limit () {
globalny produkt $;

$ args = tablica (
„post_type” => „produkt”,
„no_found_rows” => 1,
'posts_per_page' => 6,
'ignore_sticky_posts' => 1,
„orderby” => $ orderby,
„post__in” => związane z,
'post__not_in' => tablica ($ product-> id)
);
zwraca $ args;
}
add_filter ('woocommerce_related_products_args', 'woo_related_products_limit');

13 – Wyklucz produkty z określonej kategorii na stronie sklepu

 / **
* Usuń produkty ze strony sklepu według kategorii
*
* /
funkcja woo_custom_pre_get_posts_query ($ q) {

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

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

$ q-> set ('tax_query', array (array (
„taksonomia” => „product_cat”,
„field” => „ślimak”,
„terminy” => tablica („buty”), // Nie wyświetlaj produktów w kategorii obuwia na stronie sklepu
„operator” => „NOT IN”
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}
add Działalności („pre_get_posts”, „woo_custom_pre_get_posts_query”);

14 – Zmień numer kolumny sklepu

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Zmień numer kolumny produktu na stronach sklepu
*
* /
funkcja woo_product_columns_frontend () {
globalny $ woocommerce;

// Wartość domyślna używana również dla kategorii i podkategorii
$ kolumny = 4;

// Lista produktów
if (is_product_category ()):
$ kolumny = 4;
endif;

//Produkty powiązane
if (is_product ()):
$ kolumny = 2;
endif;

// Cross Sells
if (is_checkout ()):
$ kolumny = 4;
endif;

zwraca $ kolumny;
}
add_filter ('loop_shop_columns', 'woo_product_columns_frontend');

15 – Wyłącz zakładki WooCommerce

 / **
* Usuń zakładki produktu
*
* /
funkcja woo_remove_product_tab ($ tabs) {

unset ($ tabs ['opis']); // Usuń kartę opisu
unset ($ tabs ['reviews']); // Usuń kartę recenzji
unset ($ tabs ['dodatkowe_informacje']); // Usuń kartę dodatkowych informacji

zwróć tabs $;

}
add_filter ('woocommerce_product_tabs', 'woo_remove_product_tab', 98);

16 – Usuń bułkę tartą

 / **
* Usuń WooCommerce BreadCrumb
*
* /
remove Działalności („woocommerce_before_main_content”, „woocommerce_breadcrumb”, 20);

17 – Ogranicz listę krajów wysyłki

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Ogranicz listę krajów wysyłki
*
* /
funkcja woo_override_checkout_fields ($ fields) {

$ fields ['shipping'] ['shipping_country'] = tablica (
„typ” => „wybierz”,
„label” => __ („Lista moich nowych krajów”, „woocommerce”),
„options” => array („AU” => „Australia”)
);

zwróć $ pola;
}
add_filter ('woocommerce_checkout_fields', 'woo_override_checkout_fields');

18 – Zamień „Bezpłatnie!” ciąg produktu

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Zamień „Bezpłatnie!” niestandardowym ciągiem
*
* /
funkcja woo_my_custom_free_message () {
zwrot „Ten produkt jest BEZPŁATNY!”;
}

add_filter („woocommerce_free_price_html”, „woo_my_custom_free_message”);

19 – Ukryj WSZYSTKIE inne metody wysyłki, gdy dostępna jest Bezpłatna wysyłka

// Ukryj WSZYSTKIE opcje wysyłki, gdy dostępna jest bezpłatna wysyłka
add_filter ('woocommerce_available_shipping_methods', 'hide_all_shipping_when_free_is_available', 10, 1);

/ **
* Ukryj opcję WSZYSTKIEJ wysyłki, gdy dostępna jest bezpłatna wysyłka
*
* @param array $ available_methods
* /
funkcja hide_all_shipping_when_free_is_available ($ available_methods) {

if (isset ($ available_methods ['free_shipping'])):

// Uzyskaj tablicę z darmową wysyłką w nowej tablicy
$ freeshipping = array ();
$ freeshipping = $ available_methods ['free_shipping'];

// Opróżnij tablicę $ available_methods
unset ($ dostępne_metody);

// Dodaj bezpłatną wysyłkę z powrotem do $ avaialble_methods
$ available_methods = array ();
$ available_methods [] = $ freeshipping;

endif;

return $ available_methods;
}

20 – Sprawdź, czy pole „stan” kasy nie jest wymagane

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Upewnij się, że pole „stan” nie jest wymagane przy kasie
*
* /

add_filter ('woocommerce_billing_fields', 'woo_filter_state_billing', 10, 1);
add_filter ('woocommerce_shipping_fields', 'woo_filter_state_shipping', 10, 1);

funkcja woo_filter_state_billing ($ address_fields) {
$ address_fields ['billing_state'] ['wymagany'] = false;
zwróć $ adres_pola;
}

funkcja woo_filter_state_shipping ($ address_fields) {
$ address_fields ['shipping_state'] ['wymagany'] = false;
zwróć $ adres_pola;
}

21 – Utwórz programowo kupon

$ coupon_code = 'UNIQUECODE'; // Kod
kwota $ = „10”; // Ilość
$ discount_type = 'fixed_cart'; // Typ: fixed_cart, percent, fixed_product, percent_product

$ kupon = tablica (
„post_title” => kod kuponu $,
„post_content” => '',
„post_status” => „opublikuj”,
„post_author” => 1,
„post_type” => „shop_coupon”
);

$ new_coupon_id = wp_insert_post (kupon $);

// Dodaj meta
update_post_meta ($ nowy_kupon_id, „typ_pustu”, typ_pustu);
update_post_meta ($ new_coupon_id, 'coupon_amount', $ kwota);
update_post_meta ($ new_coupon_id, „individual_use”, „no”);
update_post_meta ($ new_coupon_id, 'product_ids', '');
update_post_meta ($ new_coupon_id, 'exclude_product_ids', '');
update_post_meta ($ new_coupon_id, 'use_limit', '');
update_post_meta ($ new_coupon_id, 'expiry_date', '');
update_post_meta ($ new_coupon_id, 'Apply_before_tax', 'yes');
update_post_meta ($ new_coupon_id, 'free_shipping', 'no');

22 – Zmień temat wiadomości e-mail

/ *
* Filtry tematyczne:
* woocommerce_email_subject_new_order
* woocommerce_email_subject_customer_procesing_order
* woocommerce_email_subject_customer_completed_order
* woocommerce_email_subject_customer_invoice
* woocommerce_email_subject_customer_note
* woocommerce_email_subject_low_stock
* woocommerce_email_subject_no_stock
* woocommerce_email_subject_backorder
* woocommerce_email_subject_customer_new_account
* woocommerce_email_subject_customer_invoice_paid
** /
add_filter ('woocommerce_email_subject_new_order', 'change_admin_email_subject', 1, 2);

funkcja change_admin_email_subject ($ subject, $ order) {
globalny $ woocommerce;

$ blogname = wp_specialchars_decode (get_option ('nazwa blogu'), ENT_QUOTES);

$ subject = sprintf ('[% s] Nowe zamówienie klienta (#% s) od nazwy% s% s', $ blogname, $ order-> id, $ order-> billing_first_name, $ order-> billing_last_name);

zwróć $ temat;
}

23 – Dodaj niestandardową opłatę do koszyka

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Dodaj niestandardową opłatę do koszyka automatycznie
*
* /
funkcja woo_add_cart_fee () {

globalny $ woocommerce;

if (is_cart ()) {
$ woocommerce-> cart-> add_fee (__ („Custom”, „woocommerce”), 5);
}

}
działanie dodatkowe („woocommerce_before_cart_table”, „woo_add_cart_fee”);

24 – Niestandardowa wiadomość dodana do koszyka

/ **
* Niestandardowe wiadomości Dodaj do koszyka
* Dodaj to do pliku theme.php kompozycji
** /
add_filter („woocommerce_add_to_cart_message”, „custom_add_to_cart_message”);
funkcja custom_add_to_cart_message () {
globalny $ woocommerce;

// Wyjście wiadomości o sukcesie
if (get_option ('woocommerce_cart_redirect_after_add') == 'tak'):

$ return_to = get_permalink (woocommerce_get_page_id ('sklep'));

$ message = sprintf ('% s % s ', $ return_to, __ („Kontynuuj zakupy →”, „woocommerce”), __ („Produkt został pomyślnie dodany do koszyka.”, „woocommerce”));

inaczej:

$ message = sprintf ('% s % s ', get_permalink (woocommerce_get_page_id („koszyk”)), __ („Wyświetl koszyk →”, „woocommerce”), __ („Produkt został pomyślnie dodany do koszyka.”, „woocommerce”));

endif;

zwrot $ wiadomość;
}

25 – Dodaj metodę płatności do administracyjnego adresu e-mail

/ **
* Dodatkowa funkcja WooCommerce
* --------------------------
*
* Dodaj metodę płatności, aby administrować nowym adresem e-mail zamówienia
*
* /
działanie dodatkowe („woocommerce_email_after_order_table”, „woo_add_payment_method_to_admin_new_order”, 15, 2);

funkcja woo_add_payment_method_to_admin_new_order ($ zamówienie, $ is_admin_email) {
jeśli ($ is_admin_email) {
Echo '

Metoda płatności: „. $ order-> payment_method_title. „

„; } }

I bum! Otóż ​​to! Mam nadzieję, że spodobają Ci się te fragmenty. Jeśli masz jakieś sugestie, nie wahaj się zostawić komentarza poniżej!


Nie masz motywu gotowego na WooCommerce lub chcesz nowy? Koniecznie sprawdź nasz motyw Total WordPress!

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