Cele mai bune 25 de fragmente ale mele WooCommerce pentru WordPress

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

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! ��

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