Els meus 25 millors fragments de WooCommerce per a WordPress

  1. 1. Actualment Llegint: Els meus 25 millors fragments de WooCommerce per a WordPress
  2. 2. Els meus 25 millors fragments de WooCommerce per a la segona part de WordPress

Els temps volen … Han passat 6 mesos des que vaig començar a treballar per WooThemes com a tècnic d’assistència a temps complet de WooCommerce. Durant aquests 6 mesos vaig aprendre molt sobre WooCommerce i vaig codificar-ne molt (llegiu molt!) de fragments relacionats amb WooCommerce. En realitat, WooCommerce és una eina realment potent i fàcilment expandible. Té molts ganxos que es poden utilitzar per a gairebé tot, i això és el que fa que WooCommerce sigui tan bo. Aquí teniu una llista de fragments que he escrit o adaptat durant els darrers mesos; tots aquests fragments s’han de pegar al fitxer funcions.php de la carpeta temàtica:


1: afegir tipus de pagament al correu electrònic d’administrador de WooCommerce

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

funció add_payment_method_to_admin_new_order ($ comanda, $ is_admin_email) {
if ($ is_admin_email) {
ressò '

Mètode de pagament: '. $ order-> pagament_method_title. '

'; } }

2: pot vendre productes per pàgina / per línia

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); // Mostra 3 productes a les files de 3
}
}

3: suprimiu les categories de productes de la pàgina de la botiga

add_action ('pre_get_posts', 'custom_pre_get_posts_query');

funció personalitzada_pre_get_posts_query ($ q) {

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

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

$ q-> set ("tax_query", matriu (matriu (
'taxonomia' => 'producte_cat',
'field' => 'llima',
'termes' => matriu ('color', 'sabor', 'espècies', 'vainilla'), // No mostreu productes en aquestes categories a la pàgina de la botiga
'operator' => 'NO EN "
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}

4: tradueix ràpidament qualsevol cadena

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

function translate_text ($ traduït) {
$ traduït = str_ireplace ('Tria i opció', 'Selecciona', $ traduït);
retornar $ traduït;
}

5 – Exclou una categoria del giny de la categoria WooCommerce

add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');

function woo_product_cat_widget_args ($ cat_args) {

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

retornar $ cat_args;
}

6: afegiu un camp personalitzat a una variació del producte

// Camps de visualització
add_action ('woocommerce_product_after_variable_attributes', 'variables_fields', 10, 2);
// JS per afegir camps per a noves variacions
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// Desa els camps de variació
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);

function variable_fields ($ loop, $ variació_data) {?>


7 - Reemplaça "Exhaurit" per "venut"

add_filter ('woocommerce_get_availability', 'disponibilitat_filter_func');

function Availability_filter_func ($ disponibilitat)
{
$ disponibilitat ['disponibilitat'] = str_ireplace ('Exhaurit', 'Venut', $ disponibilitat ['disponibilitat']);
tornar la disponibilitat de $;
}

8: mostra el "producte que ja està al carret" en lloc del botó "afegir al carret"

/ **
* Canvieu l'afegit al text del carretó a les pàgines d'un sol producte
* /
add_filter ("woocommerce_product_single_add_to_cart_text", "woo_custom_cart_button_text");

function woo_custom_cart_button_text () {

$ $ woocommerce global;

foreach ($ woocommerce-> cart-> get_cart () com $ cart_item_key => $ valors) {
$ _product = $ valors ['dades'];

if (get_the_ID () == $ _product-> id) {
tornar __ ("Ja teniu al carret - Afegir de nou?", "woocommerce");
}
}

tornar __ ('Afegir al carret', 'woocommerce');
}

/ **
* Canvieu el text d’afegit al carret al fitxer de productes
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

function woo_archive_custom_cart_button_text () {

$ $ woocommerce global;

foreach ($ woocommerce-> cart-> get_cart () com $ cart_item_key => $ valors) {
$ _product = $ valors ['dades'];

if (get_the_ID () == $ _product-> id) {
tornar __ ('Ja està al carret', 'woocommerce');
}
}

tornar __ ('Afegir al carret', 'woocommerce');
}

9 - Oculta el recompte de productes a la vista de categoria

add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');

function woo_remove_category_products_count () {
retorn;
}

10: creeu els camps de comprovació del compte obligatoris

add_filter ("woocommerce_checkout_fields", "woo_filter_account_checkout_fields");

function woo_filter_account_checkout_fields ($ camps) {
$ camps ['compte'] ['nom_adreça del compte'] ['obligatori'] = cert;
$ camps ['compte'] ['compte_password'] ['obligatori'] = true;
$ camps ['compte'] ['compte_password-2'] ['obligatori'] = true;

retornar $ camps;
}

11: canvieu el nom d'una pestanya de producte

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

$ tabs ['description'] ['title'] = 'Més informació';

retornar les pestanyes $;
}

12 - Llista de categories de productes de WooCommerce

$ args = matriu (
'number' => número de $,
'orderby' => $ ordre,
'ordre' => $ comanda,
'hide_empty' => $ hide_empty,
'include' => $ ids
);

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

$ count = recompte ($ product_categories);
if ($ count> 0) {
ressò "";
}

13 - Substitueix el títol de la pàgina de la botiga

add_filter ('woocommerce_page_title', 'woo_shop_page_title');

function woo_shop_page_title ($ page_title) {

if ("Comprar" == $ pàgina_title) {
retorna "El meu nou títol";
}
}

14: canvieu el títol d'un giny

/ *
* Canvia el títol del giny
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);

function woo_widget_title ($ title, $ instància, $ id_base) {

if ('onsale' == $ id_base) {
retorna "El meu nou títol";
}
}

15: suprimiu la configuració predeterminada de WooCommerce

add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');

function woo_remove_catalog_options ($ catalog) {

unset ($ catàleg [23]); // Retallar zeros (no)
unset ($ catàleg [22]); // 2 dècimes
unset ($ catàleg [21]); // sep decimal (.)
unset ($ catàleg [20]); // mil sep (,)
unset ($ catàleg [19]); // posició de moneda (esquerra)
unset ($ catàleg [18]); // posició de moneda (esquerra)
unset ($ catàleg [5]); // ajax afegir a la cistella (no)

retornar el catàleg de $;
}

16 - Canvieu l'adreça de correu electrònic "de"

funció woo_custom_wp_mail_from () {
$ $ woocommerce global;
retornar html_entity_decode ("[email protected]");
}
add_filter ("wp_mail_from", "woo_custom_wp_mail_from", 99);

17 - Decidiu del nom al correu electrònic de WooCommerce

function woo_custom_wp_mail_from_name () {
$ $ woocommerce global;
retornar html_entity_decode (get_option ('woocommerce_email_from_name'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

funció woo_custom_wp_mail_from () {
$ $ woocommerce global;
retornar html_entity_decode (get_option ('woocommerce_email_from'));
}
add_filter ('wp_mail_from_name', 'woo_custom_wp_mail_from_name', 99);

18 - Tornar els identificadors de productes destacats

function woo_get_featured_product_ids () {
// Càrrega des de la memòria cau
$ prezante_product_ids = get_transient ('wc_featured_products');

// S'ha trobat una memòria cau vàlida
if (false! == $ prezante_product_ids)
retornar $ prezante_product_ids;

$ prezante = get_posts (matriu (
'post_type' => matriu ('producte', 'producte_variació'),
'posts_per_page' => -1,
'post_status' => 'publicar',
'meta_query' => matriu (
matriu (
'key' => '_visibilitat',
'value' => array ('catàleg', 'visible'),
'compare' => 'IN'
),
matriu (
'key' => '_featured',
'value' => 'sí'
)
),
'fields' => 'id => parent'
));

$ product_ids = array_keys ($ presentat);
$ parent_ids = matriu_valors ($ presentats);
$ prezante_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));

set_transient ("wc_featured_products", $ prezante_product_ids);

retornar $ prezante_product_ids;
}

19: afegir un camp personalitzat per editar la pàgina d’adreces

// afegir camps per editar la pàgina d’adreces
function woo_add_edit_address_fields ($ camps) {

$ new_fields = matriu (
'date_of_birth' => matriu (
'label' => __ ('Data de naixement', 'woocommerce'),
'obligatori' => fals,
'class' => array ('form-fila'),
),
);

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

retornar $ camps;

}

add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');

20 - Mostra el codi curt del catàleg de productes a la venda

function woocommerce_sale_products ($ atts) {

$ $ woocommerce_loop;

extracte (shortcode_atts (matriu (
'per_page' => '12',
'column' => '4',
'orderby' => 'data',
'order' => 'desc'
), $ atts));

$ woocommerce_loop ['column'] = $ columnes;

$ args = matriu (
'post_type' => 'producte',
'post_status' => 'publicar',
'ignore_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ ordre,
'ordre' => $ comanda,
'meta_query' => matriu (
matriu (
'key' => '_visibilitat',
'value' => array ('catàleg', 'visible'),
'compare' => 'IN'
),
matriu (
'key' => '_sale_price',
'valor' => 0,
'compare' => '>',
'type' => 'NUMÈRICA'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('loop', 'shop');
wp_reset_query ();

tornar ob_get_clean ();
}

add_shortcode ('venda_productes', 'woocommerce_sale_products');

21 - Teniu productes de venda

function woo_have_onsale_products () {

$ $ woocommerce global;

// Obteniu productes a la venda
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());

if (! buit ($ product_ids_on_sale)) {
tornar veritat;
} més {
tornar fals;
}

}

// Exemple:
if (woo_have_onsale_products ()) {
eco "tenir productes a la venda";
} més {
eco "no hi ha producte a la venda";
}

22 - Estableix l’import mínim de la comanda

add_action ("woocommerce_checkout_process", "wc_minimum_order_amount");
function wc_minimum_order_amount () {
$ $ woocommerce global;
$ mínim = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('Heu de tenir una comanda amb un mínim de% s per fer la vostra comanda.', $ mínim));
}
}

23: comanda per preu, data o títol a la pàgina de la botiga

add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

function custom_default_catalog_orderby () {
data de devolució; // També pot utilitzar el títol i el preu
}

24: redirigiu el botó al carro a la pàgina de compra

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout () {
$ $ woocommerce global;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url ();
tornar $ checkout_url;
}

25 - Afegiu un destinatari de correu electrònic quan finalitzi la comanda

function woo_extra_email_recipient ($ destinatari, $ objecte) {
$ destinatari = $ destinatari. ', [email protected]';
retornar $ destinatari;
}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);

I ja està! Espero que trobeu útils aquests fragments, que van ser provats i que funcionen bé, però si teniu problemes, feu-me saber la secció de comentaris. Diverteix-te! ��

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