Timpul zboară … Au trecut 6 luni de când am început să lucrez pentru WooThemes ca tehnician de asistență WooCommerce. În aceste 6 luni am învățat multe despre WooCommerce și am codificat multe (citiți mult! ) din fragmente legate de WooCommerce. De fapt, WooCommerce este un instrument cu adevărat puternic și ușor de extins. Are multe cârlige care pot fi folosite pentru aproape orice și asta face ca WooCommerce să fie atât de bun. Iată o listă de fragmente pe care am scris-o sau adaptată-o în lunile trecute; toate aceste fragmente trebuie lipite în fișierul funcții.php din folderul dvs. tematic:
1 – Adăugați tipul de plată la e-mailul de administrator WooCommerce add_action ('woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2);
funcția add_payment_method_to_admin_new_order (comanda $, $ is_admin_email) {
if ($ is_admin_email) {
ecou 'Modalitate de plată: '. $ comanda-> plata_method_titlu. '
„;
}
}
2 – Up-vinde produse pe pagină / pe linie 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')) {
function woocommerce_output_upsells () {
woocommerce_upsell_display (3,3); // Afișați 3 produse în rânduri de 3
}
}
3 – Ștergeți categoriile de produse din pagina magazinului add_action ('pre_get_posts', 'custom_pre_get_posts_query');
function 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', tablou (tablou (
'taxonomie' => 'produs_cat',
'field' => 'slug',
'terms' => array ('culoare', 'aroma', 'condimente', 'vanilie'), // Nu afișați produsele din aceste categorii pe pagina magazinului
'operator' => 'NU ESTE IN'
)));
}
remove_action ('pre_get_posts', 'custom_pre_get_posts_query');
}
4 – Traduceți rapid orice șir add_filter ('gettext', 'translate_text');
add_filter ('ngettext', 'translate_text');
function translate_text ($ tradus) {
$ tradus = str_ireplace ('Alegeți și opțiune', 'Selectați', $ tradus);
returnare $ tradus;
}
5 – Excludeți o categorie din widgetul categoriei WooCommerce add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');
function woo_product_cat_widget_args ($ cat_args) {
$ cat_args ['exclude'] = array ('16 ');
returna $ cat_args;
}
6 – Adăugați un câmp personalizat la o variantă de produs // Campuri de afisare
add_action ('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
// JS pentru a adăuga câmpuri pentru noi variații
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// Salvați câmpurile de variație
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);
function variable_fields (bucla $, $ variație_data) {?>
7 - Înlocuiți „În afara stocului” cu „vândut” add_filter ('woocommerce_get_availability', 'disponibilitate_filter_func');
funcție disponibilitate_filter_func (disponibilitate $)
{
$ disponibilitate ['disponibilitate'] = str_ireplace ('În afara stocului', 'Vândut', disponibilitate $ ['disponibilitate']);
returnare disponibilitate $;
}
8 - Afișați „produsul deja în coș” în loc de butonul „adăugați în coș” / **
* Modificați textul de adăugare la coș pe paginile unui singur produs
* /
add_filter ('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');
function woo_custom_cart_button_text () {
global $ woocommerce;
foreach ($ woocommerce-> cart-> get_cart () ca $ cart_item_key => $ valori) {
$ _product = $ valori ['date'];
if (get_the_ID () == $ _product-> id) {
return __ ('Deja în coș - Adăugați din nou?', 'woocommerce');
}
}
return __ ('Adăugați în coș', 'woocommerce');
}
/ **
* Modificați textul de adăugare la coș în arhivele de produse
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');
function woo_archive_custom_cart_button_text () {
global $ woocommerce;
foreach ($ woocommerce-> cart-> get_cart () ca $ cart_item_key => $ valori) {
$ _product = $ valori ['date'];
if (get_the_ID () == $ _product-> id) {
return __ ('Deja în coș', 'woocommerce');
}
}
return __ ('Adăugați în coș', 'woocommerce');
}
9 - Ascundeți numărul de produse în vizualizarea categoriei add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');
function woo_remove_category_products_count () {
întoarcere;
}
10 - Faceți câmpurile de verificare a contului necesare add_filter ('woocommerce_checkout_fields', 'woo_filter_account_checkout_fields');
function woo_filter_account_checkout_fields ($ câmpuri) {
$ fields ['account'] ['account_username'] ['obligatoriu'] = true;
$ fields ['account'] ['account_password'] ['obligatoriu'] = true;
$ fields ['account'] ['account_password-2'] ['obligatoriu'] = true;
returnare câmpuri $;
}
11 - Redenumiți fila produsului add_filter ('woocommerce_product_tabs', 'woo_rename_tab', 98);
function woo_rename_tab ($ file) {
$ tabs ['description'] ['title'] = 'Mai multe informații';
returneaza filele $;
}
12 - Lista categoriilor de produse WooCommerce $ args = array (
'number' => $ number,
'orderby' => $ comanda,
'comanda' => $ comanda,
'hide_empty' => $ hide_empty,
'include' => $ id
);
$ product_categories = get_terms ('product_cat', $ args);
$ număr = număr ($ produs_categorii);
if (numar $> 0) {
ecou "„;
}
13 - Înlocuiți titlul paginii magazinului add_filter ('woocommerce_page_title', 'woo_shop_page_title');
function woo_shop_page_title ($ page_title) {
if ("Magazin" == $ pagina_titlu) {
returnați „Noul meu titlu”;
}
}
14 - Modificați un titlu de widget / *
* Schimbă titlul widgetului
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);
function woo_widget_title ($ title, $ instanță, $ id_base) {
if ('onsale' == $ id_base) {
returnați „Noul meu titlu”;
}
}
15 - Ștergeți setările implicite WooCommerce add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');
function woo_remove_catalog_options ($ catalog) {
unset ($ catalog [23]); // Trimiterea zerourilor (nu)
unset ($ catalog [22]); // 2 zecimale
unset ($ catalog [21]); // sep zecimal (.)
unset ($ catalog [20]); // mii sep (,)
unset ($ catalog [19]); // poziția valutară (stânga)
unset ($ catalog [18]); // poziția valutară (stânga)
unset ($ catalog [5]); // ajax adăugați în coș (nu)
returneaza catalogul de dolari;
}
16 - Schimbați adresa de e-mail „de la” function woo_custom_wp_mail_from () {
global $ woocommerce;
returnați html_entity_decode ('[email protected] ');
}
add_filter ('wp_mail_from', 'woo_custom_wp_mail_from', 99);
17 - Decodează de la nume în e-mailul WooCommerce function woo_custom_wp_mail_from_name () {
global $ woocommerce;
return html_entity_decode (get_option ('woocommerce_email_from_name'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);
function woo_custom_wp_mail_from () {
global $ woocommerce;
return html_entity_decode (get_option ('woocommerce_email_from'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);
18 - Returnare id-uri ale produselor prezentate function woo_get_featured_product_ids () {
// Încărcare din cache
$ prezante_product_ids = get_transient ('wc_featured_products');
// Cache-ul valid a fost găsit
if (false! == $ prezintă_product_ids)
returna $ prezentat_product_ids;
$ feature = get_posts (tablou (
'post_type' => array ('produs', 'product_variation'),
'posts_per_page' => -1,
'post_status' => 'publicare',
'meta_query' => array (
array (
'key' => '_visibilitate',
'value' => array ('catalog', 'visible'),
'compare' => 'IN'
),
array (
'key' => '_featured',
'value' => 'da'
)
),
'fields' => 'id => părinte'
));
$ product_ids = array_keys ($ prezentat);
$ parent_ids = array_values ($ prezentat);
$ prezante_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));
set_transient ('wc_featured_products', $ feature_product_ids);
returna $ prezentat_product_ids;
}
19 - Adăugați câmp personalizat pentru a edita pagina de adrese // adăugați câmpuri pentru a edita pagina de adrese
function woo_add_edit_address_fields ($ câmpuri) {
$ new_fields = array (
'date_of_birth' => tablou (
'label' => __ ('Data nașterii', 'woocommerce'),
'necesar' => fals,
'class' => array ('form-rând'),
),
);
$ fields = array_merge ($ câmpuri, $ new_fields);
returnare câmpuri $;
}
add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');
20 - Afișați codul scurt al catalogului de produse la vânzare function woocommerce_sale_products ($ atts) {
global $ woocommerce_loop;
Extract (shortcode_atts (array (
'per_page' => '12',
'column' => '4',
'orderby' => 'data',
'order' => 'desc'
), $ atts));
$ woocommerce_loop ['column'] = $ coloane;
$ args = array (
'post_type' => 'produs',
'post_status' => 'publicare',
'ignore_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ comanda,
'comanda' => $ comanda,
'meta_query' => array (
array (
'key' => '_visibilitate',
'value' => array ('catalog', 'visible'),
'compare' => 'IN'
),
array (
'key' => '_sale_price',
'valoare' => 0,
'compare' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('buclă', 'magazin');
wp_reset_query ();
return ob_get_clean ();
}
add_shortcode („vânzare_produse”, „woocommerce_sale_products”);
21 - Au produse de vânzare function woo_have_onsale_products () {
global $ woocommerce;
// Obțineți produse la vânzare
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());
if (! goală ($ product_ids_on_sale)) {
întoarce-te adevărat;
} altfel {
returnare falsă;
}
}
// Exemplu:
if (woo_have_onsale_products ()) {
ecou „au produse de vânzare”;
} altfel {
ecou „fără produs de vânzare”;
}
22 - Setați suma minimă a comenzii add_action ('woocommerce_checkout_process', 'wc_minimum_order_amount');
function wc_minimum_order_amount () {
global $ woocommerce;
minim $ = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('Trebuie să aveți o comandă cu minimum% s pentru a plasa comanda.', minim $));
}
}
23 - Comandați după preț, dată sau titlu pe pagina magazinului add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');
function custom_default_catalog_orderby () {
retur „data”; // Poate folosi și titlul și prețul
}
24 - Redirecționați adăugarea la butonul de coș la pagina de finalizare add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout () {
global $ woocommerce;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url ();
returna $ checkout_url;
}
25 - Adăugați destinatarul de e-mail la finalizarea comenzii function woo_extra_email_recipient ($ destinatar, $ obiect) {
$ destinatar = $ destinatar. ', [email protected] ';
returnare $ destinatar;
}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);
Si asta e! Sper că veți găsi aceste fragmente utile, toate au fost testate și toate funcționează bine, dar dacă întâmpinați probleme, vă rugăm să anunțați secțiunea de comentarii. A se distra!
07.06.2020
Cele mai bune 25 de fragmente ale mele WooCommerce pentru WordPress
Jeffrey Wilson Tutoriale
Timpul zboară … Au trecut 6 luni de când am început să lucrez pentru WooThemes ca tehnician de asistență WooCommerce. În aceste 6 luni am învățat multe despre WooCommerce și am codificat multe (citiți mult!) din fragmente legate de WooCommerce. De fapt, WooCommerce este un instrument cu adevărat puternic și ușor de extins. Are multe cârlige care pot fi folosite pentru aproape orice și asta face ca WooCommerce să fie atât de bun. Iată o listă de fragmente pe care am scris-o sau adaptată-o în lunile trecute; toate aceste fragmente trebuie lipite în fișierul funcții.php din folderul dvs. tematic:
Contents
1 – Adăugați tipul de plată la e-mailul de administrator WooCommerce
2 – Up-vinde produse pe pagină / pe linie
3 – Ștergeți categoriile de produse din pagina magazinului
4 – Traduceți rapid orice șir
5 – Excludeți o categorie din widgetul categoriei WooCommerce
6 – Adăugați un câmp personalizat la o variantă de produs
7 - Înlocuiți „În afara stocului” cu „vândut”
8 - Afișați „produsul deja în coș” în loc de butonul „adăugați în coș”
9 - Ascundeți numărul de produse în vizualizarea categoriei
10 - Faceți câmpurile de verificare a contului necesare
11 - Redenumiți fila produsului
12 - Lista categoriilor de produse WooCommerce
13 - Înlocuiți titlul paginii magazinului
14 - Modificați un titlu de widget
15 - Ștergeți setările implicite WooCommerce
16 - Schimbați adresa de e-mail „de la”
17 - Decodează de la nume în e-mailul WooCommerce
18 - Returnare id-uri ale produselor prezentate
19 - Adăugați câmp personalizat pentru a edita pagina de adrese
20 - Afișați codul scurt al catalogului de produse la vânzare
21 - Au produse de vânzare
22 - Setați suma minimă a comenzii
23 - Comandați după preț, dată sau titlu pe pagina magazinului
24 - Redirecționați adăugarea la butonul de coș la pagina de finalizare
25 - Adăugați destinatarul de e-mail la finalizarea comenzii
Si asta e! Sper că veți găsi aceste fragmente utile, toate au fost testate și toate funcționează bine, dar dacă întâmpinați probleme, vă rugăm să anunțați secțiunea de comentarii. A se distra!