1. 1. Cele mai bune 25 de fragmente ale mele WooCommerce pentru WordPress
  2. 2. Acum citesc: Cele mai bune 25 de fragmente ale mele WooCommerce pentru WordPress partea a 2-a

În urmă cu câteva zile, am scris o postare în care am enumerat 25 dintre cele mai utile fragmente WooCommerce pe care le folosesc și ai fost multă lume pentru a cere mai multe, așa că astăzi am decis să ofer mai multe fragmente pentru WooCommerce! Începem!


1 – Înlocuiți logo-ul PayPal implicit WooCommerce

/ *
* Înlocuiți pictograma PayPal implicită WooCommerce
* /
function paypal_checkout_icon () {
returnați „https://www.paypalobjects.com/webstatic/mktg/logo-center/logo_betalen_met_paypal_nl.jpg”; // scrieți URL-ul propriei imagini aici
}
add_filter ('woocommerce_paypal_icon', 'paypal_checkout_icon');

2 – Înlocuiți imaginea înlocuitorului produsului implicit

/ *
* merge în theme funcții.php sau un plugin personalizat. Înlocuiți numele / fișierul imaginii cu unul propriu 🙂
*
** /
add_action ('init', 'custom_fix_thumbnail');

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

function custom_woocommerce_placeholder_img_src ($ src) {
$ upload_dir = wp_upload_dir ();
$ upload = untrailingslashit ($ upload_dir ['baseurl']);
$ src = $ încărcări. '/2012/07/thumb1.jpg';

returna $ src;
}
}

3 – Scoateți „Produse” din pesmet

/ *
* Ascundeți „Produse” în WooCommerce breadcrumb
* /
function woo_custom_filter_breadcrumbs_trail ($ trail) {
foreach ($ traseu ca $ k => $ v) {
if (strtolower (strip_tags ($ v)) == 'produse') {
nesetat ($ traseu [$ k]);
pauză;
}
}

returna traseul $;
}

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

4 – Coșul gol

/ *
* Coș WooCommerce gol
* /
function my_empty_cart () {
global $ woocommerce;
$ Woocommerce-> cart-> empty_cart ();
}
add_action ('init', 'my_empty_cart');

5 – Adăugați automat produsul în coș în vizită

/ *
* Adaugă articol în coș în vizită
* /
funcție add_product_to_cart () {
if (! is_admin ()) {
global $ woocommerce;
$ produs_id = 64;
$ găsit = fals;
// verificați dacă produsul este deja în coș
if (sizeof ($ woocommerce-> cart-> get_cart ())> 0) {
foreach ($ woocommerce-> cart-> get_cart () ca $ cart_item_key => $ valori) {
$ _product = $ valori ['date'];
if ($ _product-> id == $ product_id)
$ găsit = adevărat;
}
// dacă produsul nu a fost găsit, adăugați-l
dacă (! $ găsit)
$ woocommerce-> cart-> add_to_cart ($ product_id);
} altfel {
// dacă nu există produse în coș, adăugați-l
$ woocommerce-> cart-> add_to_cart ($ product_id);
}
}
}
add_action ('init', 'add_product_to_cart');

6 – Adăugați o monedă / simbol personalizat

add_filter ('woocommerce_currencies', 'add_my_currency');

function add_my_currency (valute $) {
$ monede ['ABC'] = __ ('Numele valutei', 'woocommerce');
returneaza valute $;
}

add_filter ('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);

function add_my_currency_symbol ($ valuta_symbol, $ moneda) {
switch ($ valuta) {
cazul „ABC”: $ valuta_symbol = '$'; pauză;
}
returneaza $ valuta_symbol;
}

7 – Modificați textul butonului pentru adăugare

/ **
* Modificați textul de adăugare la coș pe paginile unui singur produs
* /
function woo_custom_cart_button_text () {
return __ („Textul butonului meu”, „woocommerce”);
}
add_filter ('single_add_to_cart_text', 'woo_custom_cart_button_text');



/ **
* Modificați textul de adăugare la coș în arhivele de produse
* /
function woo_archive_custom_cart_button_text () {
return __ („Textul butonului meu”, „woocommerce”);
}
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

8 – Abonament redirecționat adaugă în coș la pagina de finalizare

/ **
* Redirecționare abonament adăugare în coș la pagina de finalizare
*
* @param string $ url
* /
function custom_add_to_cart_redirect ($ url) {

$ product_id = (int) $ _REQUEST ['adaos în coș'];
if (class_exists ('WC_Subscriptions_Product')) {
if (WC_Subscriptions_Product :: is_subscription ($ product_id)) {
returnați get_permalink (get_option ('woocommerce_checkout_page_id'));
} altceva returnează $ url;
} altceva returnează $ url;

}
add_filter ('add_to_cart_redirect', 'custom_add_to_cart_redirect');

Acest fragment necesită pluginul Abonamente.

9 – Redirecționați la pagina de checkout după adăugare în coș

/ **
* Redirecționare abonament adăugare în coș la pagina de finalizare
*
* @param niciuna
* /
funcție add_to_cart_checkout_redirect () {
wp_safe_redirect (get_permalink (get_option ('woocommerce_checkout_page_id')));
a muri();
}
add_action ('woocommerce_add_to_cart', 'add_to_cart_checkout_redirect', 11);

10 – CC toate e-mailurile

 / **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Adăugați un alt destinatar de e-mail la toate e-mailurile WooCommerce
*
* /
function woo_cc_all_emails () {
returnați „Bcc: [email protected]”. "\ R \ n";
}
add_filter ('woocommerce_email_headers', 'woo_cc_all_emails');

11 – Trimiteți un e-mail atunci când o nouă comandă este completată cu cupoane utilizate

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Trimiteți un e-mail de fiecare dată când se finalizează o comandă cu cupon (e)
* E-mailul conține cupon (e) utilizate în timpul procesului de finalizare
*
* /
function woo_email_order_coupons ($ order_id) {
$ comanda = WC_Order nou ($ comanda_id);

if ($ comanda-> get_used_coupons ()) {

$ to = '[email protected]';
$ subject = 'Comandă nouă completată';
$ headers = 'From: My Name'. "\ R \ n";

$ message = 'O nouă comandă a fost finalizată. \ n';
$ message. = 'ID-ul comenzii:'. $ comanda_id. '\ n';
$ message. = 'Cupoane utilizate: \ n';

foreach ($ order-> get_used_coupons () ca $ cupon) {
$ mesaj. = $ cupon. '\ n';
}
@wp_mail ($ to, $ subiect, $ mesaj, $ anteturi);
}
}
add_action ('woocommerce_thankyou', 'woo_email_order_coupons');

12 – Modificați numărul de produse aferente

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Modifica numărul de produse conexe pe pagina produsului
* Setați-vă propria valoare pentru „posts_per_page”
*
* /
function woo_related_products_limit () {
produs global $;

$ args = array (
'post_type' => 'produs',
'no_found_rows' => 1,
'posts_per_page' => 6,
'ignore_sticky_posts' => 1,
'orderby' => $ comanda,
'post__in' => $ legate,
'post__not_in' => tablou ($ produs-> id)
);
returneaza $ args;
}
add_filter ('woocommerce_related_products_args', 'woo_related_products_limit');

13 – Excludeți produsele dintr-o anumită categorie de pe pagina magazinului

 / **
* Eliminați produsele din pagina magazinului pe categorii
*
* /
function 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', tablou (tablou (
'taxonomie' => 'produs_cat',
'field' => 'slug',
'terms' => array ('pantofi'), // Nu afișați produsele din categoria pantofi pe pagina magazinului
'operator' => 'NU ESTE IN'
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}
add_action ('pre_get_posts', 'woo_custom_pre_get_posts_query');

14 – Modificați numărul coloanelor magazinului

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Modificați numărul coloanelor de produse din paginile magazinului
*
* /
function woo_product_columns_frontend () {
global $ woocommerce;

// Valoarea implicită este de asemenea folosită pentru categorii și subcategorii
$ column = 4;

// Lista de produse
if (is_product_category ()):
$ column = 4;
endif;

//Produse asemanatoare
if (is_product ()):
$ column = 2;
endif;

// Crucea Vinde
if (is_checkout ()):
$ column = 4;
endif;

returnare coloane $;
}
add_filter ('loop_shop_columns', 'woo_product_columns_frontend');

15 – Dezactivați filele WooCommerce

 / **
* Ștergeți filele produsului
*
* /
function woo_remove_product_tab ($ file) {

unset (filele $ [„descriere”]); // Scoateți fila descriere
unset (filele $ ['recenzii']); // Ștergeți fila recenzii
unset (filele $ ['informație suplimentară']); // Eliminați fila cu informații suplimentare

returneaza filele $;

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

16 – Îndepărtați pesmetul

 / **
* Eliminați WooCommerce BreadCrumb
*
* /
remove_action ('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);

17 – Restrângeți lista țărilor de transport

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Restrângeți lista țărilor de transport
*
* /
function woo_override_checkout_fields ($ câmpuri) {

$ fields ['shipping'] ['shipping_country'] = array (
'type' => 'selectați',
'label' => __ ('Lista noii mele țări', 'woocommerce'),
'options' => array ('AU' => 'Australia')
);

returnare câmpuri $;
}
add_filter ('woocommerce_checkout_fields', 'woo_override_checkout_fields');

18 – Înlocuiți „Free!” șir de produse

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Înlocuiți „Gratuit!” de un șir personalizat
*
* /
function woo_my_custom_free_message () {
returnați "acest produs este GRATUIT!";
}

add_filter ('woocommerce_free_price_html', 'woo_my_custom_free_message');

19 – Ascundeți toate celelalte metode de expediere atunci când este disponibilă livrare gratuită

// Ascunde TOATE opțiunile de expediere atunci când este disponibilă livrare gratuită
add_filter ('woocommerce_available_shipping_methods', 'hide_all_shipping_when_free_is_available', 10, 1);

/ **
* Ascunde TOATE opțiunea de expediere atunci când transportul gratuit este disponibil
*
* @param array $ available_methods
* /
function hide_all_shipping_when_free_is_available ($ available_methods) {

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

// Obțineți tabloul de transport gratuit într-un nou tablou
$ freeshipping = array ();
$ freeshipping = $ available_methods ['free_shipping'];

// Goliți tabloul $ disponibil_methods
nesetat ($ disponibile_metode);

// Adăugați transportul gratuit înapoi la $ avaialble_methods
$ available_methods = array ();
$ available_methods [] = $ freeshipping;

endif;

returna $ disponibil_metode;
}

20 – Câmpul „starea” nu este obligatoriu

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Faceți câmpul „stat” care nu este necesar la efectuarea plății
*
* /

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

function woo_filter_state_billing ($ address_fields) {
$ address_fields ['billing_state'] ['obligatoriu'] = fals;
returna $ adresa_câmpuri;
}

function woo_filter_state_shipping ($ address_fields) {
$ address_fields ['shipping_state'] ['obligatoriu'] = fals;
returna $ adresa_câmpuri;
}

21 – Creați programatic un cupon

$ cupon_code = 'UNIQUECODE'; // Cod
suma $ = '10'; // Cantitate
$ discount_type = 'fix_cart'; // Tipul: fix_cart, procent, fix_product, procent_product

$ cupon = array (
'post_title' => $ cod cupon,
'post_content' => '',
'post_status' => 'publicare',
'post_author' => 1,
'post_type' => 'shop_coupon'
);

$ new_coupon_id = wp_insert_post ($ cupon);

// Adăugați meta
update_post_meta ($ new_coupon_id, 'discount_type', $ discount_type);
update_post_meta ($ new_coupon_id, 'cupon_amount', suma $);
update_post_meta ($ new_coupon_id, 'individual_use', 'nu');
update_post_meta ($ new_coupon_id, 'product_ids', '');
update_post_meta ($ new_coupon_id, 'exclude_product_ids', '');
update_post_meta ($ new_coupon_id, 'usage_limit', '');
update_post_meta ($ new_coupon_id, 'expiry_date', '');
update_post_meta ($ new_coupon_id, 'apply_before_tax', 'da');
update_post_meta ($ new_coupon_id, 'free_shipping', 'nu');

22 – Schimbați liniile de subiecte de e-mail

/ *
* Filtre subiecte:
* 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);

function change_admin_email_subject ($ subiect, $ comanda) {
global $ woocommerce;

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

$ subject = sprintf ('[% s] Noua comandă a clienților (#% s) de la Name% s% s', $ blogname, $ order-> id, $ order-> facting_first_name, $ order-> billing_last_name);

returnare $ subiect;
}

23 – Adăugați taxă personalizată în coș

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Adăugați taxă personalizată în coș
*
* /
function woo_add_cart_fee () {

global $ woocommerce;

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

}
add_action ('woocommerce_before_cart_table', 'woo_add_cart_fee');

24 – Adăugare personalizată la coș

/ **
* Mesaje personalizate Adaugă în coș
* Adaugă acest lucru în fișierul tău funcții.php
** /
add_filter ('woocommerce_add_to_cart_message', 'custom_add_to_cart_message');
function custom_add_to_cart_message () {
global $ woocommerce;

// Afișează mesaje de succes
if (get_option ('woocommerce_cart_redirect_after_add') == 'da'):

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

$ message = sprintf ('% s % s ', $ return_to, __ (' Continuă cumpărăturile → ',' woocommerce '), __ (' Produsul a fost adăugat cu succes în coș. ',' woocommerce '));

altceva:

$ message = sprintf ('% s % s ', get_permalink (woocommerce_get_page_id (' cart ')), __ (' Vizualizare coș → ',' woocommerce '), __ (' Produs adăugat cu succes în coșul dvs. ',' woocommerce '));

endif;

returneaza mesajul $;
}

25 – Adăugați o metodă de plată la adresa de e-mail admin

/ **
* Funcție suplimentară WooCommerce
* --------------------------
*
* Adăugați o metodă de plată la un e-mail de comandă nou
*
* /
add_action ('woocommerce_email_after_order_table', 'woo_add_payment_method_to_admin_new_order', 15, 2);

function woo_add_payment_method_to_admin_new_order (comanda $, $ is_admin_email) {
if ($ is_admin_email) {
ecou '

Modalitate de plată: '. $ comanda-> plata_method_titlu. '

„; } }

Și boom! Asta e! Sper că vă vor plăcea aceste fragmente. Dacă aveți sugestii, nu ezitați să lăsați un comentariu mai jos!


Nu aveți o temă pregătită pentru WooCommerce sau vreți una nouă? Asigurați-vă că consultați tema noastră Total WordPress!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me