1. 1. Lendo atualmente: Meus 25 melhores trechos de WooCommerce para WordPress
  2. 2. Meus 25 melhores trechos de WooCommerce para WordPress Parte 2

O tempo voa … Faz seis meses que comecei a trabalhar para o WooThemes como técnico de suporte em tempo integral do WooCommerce. Durante esses 6 meses, aprendi muito sobre WooCommerce e codifiquei bastante (leia muito!) dos snippets relacionados ao WooCommerce. Na verdade, o WooCommerce é uma ferramenta realmente poderosa e facilmente expansível. Tem muitos ganchos que podem ser usados ​​para quase tudo, e é isso que torna o WooCommerce tão bom. Aqui está uma lista de trechos que escrevi ou adaptei nos últimos meses; todos esses trechos devem ser colados no arquivo functions.php na sua pasta de temas:


1 – Adicionar tipo de pagamento ao email de administrador do WooCommerce

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

função add_payment_method_to_admin_new_order ($ order, $ is_admin_email) {
if ($ is_admin_email) {
eco '

Forma de pagamento: ' $ order-> payment_method_title. "

'; } }

2 – Produtos mais vendidos por página / por linha

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')) {
função woocommerce_output_upsells () {
woocommerce_upsell_display (3,3); // Exibe 3 produtos em linhas de 3
}
}

3 – Remover categorias de produtos da página da loja

add_action ('pre_get_posts', 'custom_pre_get_posts_query');

função custom_pre_get_posts_query ($ q) {

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

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

$ q-> set ('tax_query', array (array (
'taxonomy' => 'product_cat',
'campo' => 'lesma',
'terms' => array ('color', 'flavor', 'spices', 'vanilla'), // Não exiba produtos nessas categorias na página da loja
'operator' => 'NOT IN'
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}

4 – Traduzir rapidamente qualquer string

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

função translate_text ($ traduzido) {
$ traduzido = str_ireplace ('Escolha e opção', 'Selecionar', $ traduzido);
retornar $ traduzido;
}

5 – Excluir uma categoria do widget da categoria WooCommerce

add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');

função woo_product_cat_widget_args ($ cat_args) {

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

retorne $ cat_args;
}

6 – Adicione um campo personalizado a uma variação do produto

// Campos de exibição
add_action ('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
// JS para adicionar campos para novas variações
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// Salvar campos de variação
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);

função variable_fields ($ loop, $ variable_data) {?>


7 - Substitua "Fora de estoque" por "vendido"

add_filter ('woocommerce_get_availability', 'Availability_filter_func');

função Availability_filter_func ($ Availability)
{
$ disponibilidade ['disponibilidade'] = str_ireplace ('Fora de estoque', 'Vendido', $ disponibilidade ['disponibilidade']);
retornar $ disponibilidade;
}

8 - Exibir "o produto já está no carrinho" em vez do botão "adicionar ao carrinho"

/ **
* Altere o texto Adicionar ao carrinho em páginas de produto únicas
* /
add_filter ('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');

função woo_custom_cart_button_text () {

$ woocommerce global;

foreach ($ woocommerce-> cart-> get_cart () como $ cart_item_key => $ values) {
$ _product = $ values ​​['dados'];

if (get_the_ID () == $ _product-> id) {
return __ ('Já está no carrinho - Adicionar novamente?', 'woocommerce');
}
}

return __ ('Adicionar ao carrinho', 'woocommerce');
}

/ **
* Altere o texto Adicionar ao carrinho nos arquivos do produto
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

função woo_archive_custom_cart_button_text () {

$ woocommerce global;

foreach ($ woocommerce-> cart-> get_cart () como $ cart_item_key => $ values) {
$ _product = $ values ​​['dados'];

if (get_the_ID () == $ _product-> id) {
return __ ('Já está no carrinho', 'woocommerce');
}
}

return __ ('Adicionar ao carrinho', 'woocommerce');
}

9 - Ocultar contagem de produtos na visualização por categoria

add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');

função woo_remove_category_products_count () {
Retorna;
}

10 - Tornar obrigatórios os campos de pagamento da conta

add_filter ('woocommerce_checkout_fields', 'woo_filter_account_checkout_fields');

função woo_filter_account_checkout_fields ($ fields) {
$ fields ['account'] ['account_username'] ['required'] = true;
$ fields ['account'] ['account_password'] ['required'] = true;
$ fields ['account'] ['account_password-2'] ['required'] = true;

retornar $ campos;
}

11 - Renomeie uma guia do produto

add_filter ('woocommerce_product_tabs', 'woo_rename_tab', 98);
função woo_rename_tab ($ tabs) {

$ tabs ['description'] ['title'] = 'Mais informações';

retornar $ tabs;
}

12 - Listar categorias de produtos WooCommerce

$ args = matriz (
'número' => $ número,
'orderby' => $ orderby,
'order' => $ order,
'hide_empty' => $ hide_empty,
'include' => $ ids
);

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

$ count = count ($ product_categories);
if ($ count> 0) {
eco "";
}

13 - Substituir o título da página da loja

add_filter ('woocommerce_page_title', 'woo_shop_page_title');

função woo_shop_page_title ($ page_title) {

if ('Shop' == $ page_title) {
retornar "Meu novo título";
}
}

14 - Alterar o título do widget

/ *
* Alterar o título do widget
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);

função woo_widget_title ($ title, $ instance, $ id_base) {

if ('onsale' == $ id_base) {
retornar "Meu novo título";
}
}

15 - Remova as configurações padrão do WooCommerce

add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');

função woo_remove_catalog_options ($ catalog)

não definido ($ catalog [23]); // Trim zeros (no)
não definido ($ catalog [22]); // 2 casas decimais
não definido ($ catalog [21]); // sep decimal (.)
não definido ($ catalog [20]); // mil set (,)
não definido ($ catalog [19]); // posição da moeda (esquerda)
não definido ($ catalog [18]); // posição da moeda (esquerda)
não definido ($ catalog [5]); // ajax adicionar ao carrinho (no)

retornar $ catalog;
}

16 - Alterar endereço de e-mail "de"

função 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 - Decodificar do nome no email do WooCommerce

função 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);

função 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 - Devolver IDs de produtos em destaque

função woo_get_featured_product_ids () {
// Carregar do cache
$ featured_product_ids = get_transient ('wc_featured_products');

// Cache válido encontrado
if (false! == $ featured_product_ids)
retornar $ featured_product_ids;

$ featured = get_posts (matriz (
'post_type' => matriz ('produto', 'produto_variação'),
'posts_per_page' => -1,
'post_status' => 'publicar',
'meta_query' => matriz (
matriz (
'key' => '_visibility',
'value' => array ('catálogo', 'visível'),
'compare' => 'IN'
),
matriz (
'key' => '_featured',
'valor' => 'sim'
)
),
'campos' => 'id => pai'
));

$ product_ids = array_keys ($ em destaque);
$ parent_ids = array_values ​​($ em destaque);
$ featured_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));

set_transient ('wc_featured_products', $ featured_product_ids);

retornar $ featured_product_ids;
}

19 - Adicione um campo personalizado para editar a página de endereço

// adiciona campos para editar a página de endereço
função woo_add_edit_address_fields ($ fields) {

$ new_fields = matriz (
'date_of_birth' => matriz (
'label' => __ ('Data de nascimento', 'woocommerce'),
'obrigatório' => falso,
'class' => array ('form-row'),
),
);

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

retornar $ campos;

}

add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');

20 - Exibir código de acesso ao catálogo de produtos em venda

função woocommerce_sale_products ($ atts) {

global $ woocommerce_loop;

extrair (shortcode_atts (array (
'per_page' => '12',
'colunas' => '4',
'orderby' => 'data',
'order' => 'desc'
), $ atts));

$ woocommerce_loop ['columns'] = $ colunas;

$ args = matriz (
'post_type' => 'produto',
'post_status' => 'publicar',
'ignore_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ orderby,
'order' => $ order,
'meta_query' => matriz (
matriz (
'key' => '_visibility',
'value' => array ('catálogo', 'visível'),
'compare' => 'IN'
),
matriz (
'key' => '_sale_price',
'valor' => 0,
'compare' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('loop', 'loja');
wp_reset_query ();

retornar ob_get_clean ();
}

add_shortcode ('sale_products', 'woocommerce_sale_products');

21 - Tenha produtos vendidos

função woo_have_onsale_products () {

$ woocommerce global;

// Colocar produtos à venda
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());

if (! vazio ($ product_ids_on_sale)) {
return true;
} outro {
retorna falso;
}

}

// Exemplo:
if (woo_have_onsale_products ()) {
eco 'tem produtos de venda direta';
} outro {
eco 'nenhum produto de venda';
}

22 - Defina o valor mínimo do pedido

add_action ('woocommerce_checkout_process', 'wc_minimum_order_amount');
função wc_minimum_order_amount () {
$ woocommerce global;
$ mínimo = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('Você deve ter um pedido com no mínimo% s para fazer seu pedido.', $ mínimo));
}
}

23 - Ordenar por preço, data ou título na página da loja

add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

função custom_default_catalog_orderby () {
data de retorno'; // Também pode usar título e preço
}

24 - Redirecionar botão adicionar ao carrinho para a página de checkout

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

função redirect_to_checkout () {
$ woocommerce global;
$ checkout_url = $ woocommerce-> carrinho-> get_checkout_url ();
retornar $ checkout_url;
}

25 - Adicionar destinatário de email quando o pedido for concluído

função woo_extra_email_recipient ($ destinatário, $ objeto) {
$ destinatário = $ destinatário. ', [email protected]';
devolver $ destinatário;
}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);

E é isso! Espero que você considere esses trechos úteis, todos foram testados e todos funcionam bem, mas se houver algum problema, informe-nos na seção de comentários. Diverta-se! ��

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