Mis 25 mejores fragmentos de WooCommerce para WordPress

  1. 1. Actualmente leyendo: Mis 25 mejores fragmentos de WooCommerce para WordPress
  2. 2. Mis 25 mejores fragmentos de WooCommerce para WordPress Parte 2

El tiempo vuela … Han pasado 6 meses desde que comencé a trabajar para WooThemes como técnico de soporte de tiempo completo de WooCommerce. Durante estos 6 meses aprendí mucho en WooCommerce y codifiqué mucho (lea mucho!) de fragmentos relacionados con WooCommerce. En realidad, WooCommerce es una herramienta realmente poderosa y fácilmente expandible. Tiene muchos ganchos que se pueden usar para casi todo, y eso es lo que hace que WooCommerce sea tan bueno. Aquí hay una lista de fragmentos que escribí o adapté durante los últimos meses; Todos estos fragmentos deben pegarse en el archivo functions.php dentro de su carpeta de temas:


Contents

1 – Agregar tipo de pago al correo electrónico de administrador de WooCommerce

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

función add_payment_method_to_admin_new_order ($ order, $ is_admin_email) {
if ($ is_admin_email) {
eco '

Método de pago: '. $ order-> payment_method_title. '

'; } }

2 – Ventas superiores de productos por página / por línea

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')) {
función woocommerce_output_upsells () {
woocommerce_upsell_display (3,3); // Muestra 3 productos en filas de 3
}
}

3 – Eliminar categorías de productos de la página de la tienda

add_action ('pre_get_posts', 'custom_pre_get_posts_query');

función 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', array (array (
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array ('color', 'sabor', 'especias', 'vainilla'), // No mostrar productos en estas categorías en la página de la tienda
'operator' => 'NO EN'
)));

}

remove_action ('pre_get_posts', 'custom_pre_get_posts_query');

}

4 – Traduce rápidamente cualquier cadena

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

función translate_text ($ translate) {
$ traducir = str_ireplace ('Elegir y opción', 'Seleccionar', $ traducido);
return $ traducido;
}

5 – Excluir una categoría del widget de categoría WooCommerce

add_filter ('woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args');

función woo_product_cat_widget_args ($ cat_args) {

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

return $ cat_args;
}

6 – Agregar un campo personalizado a una variación de producto

// Mostrar campos
add_action ('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
// JS para agregar campos para nuevas variaciones
add_action ('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
// Guardar campos de variación
add_action ('woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1);

función variable_fields ($ loop, $ variación_datos) {?>


7 - Reemplazar "Agotado" por "vendido"

add_filter ('woocommerce_get_availability', 'Availability_filter_func');

función Availability_filter_func ($ Availability)
{
$ disponibilidad ['disponibilidad'] = str_ireplace ('Agotado', 'Vendido', $ disponibilidad ['disponibilidad']);
devolver $ disponibilidad;
}

8 - Muestra el botón "producto ya en el carrito" en lugar del botón "agregar al carrito"

/ **
* Cambiar el texto de agregar al carrito en páginas de productos individuales
* /
add_filter ('woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text');

función woo_custom_cart_button_text () {

global $ woocommerce;

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

if (get_the_ID () == $ _product-> id) {
return __ ('¿Ya está en el carrito - Agregar nuevamente?', 'woocommerce');
}
}

return __ ('Añadir al carrito', 'woocommerce');
}

/ **
* Cambiar el texto de agregar al carrito en los archivos del producto
* /
add_filter ('add_to_cart_text', 'woo_archive_custom_cart_button_text');

función woo_archive_custom_cart_button_text () {

global $ woocommerce;

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

if (get_the_ID () == $ _product-> id) {
return __ ('Ya en el carrito', 'woocommerce');
}
}

return __ ('Añadir al carrito', 'woocommerce');
}

9 - Ocultar los productos cuentan en la vista de categoría

add_filter ('woocommerce_subcategory_count_html', 'woo_remove_category_products_count');

function woo_remove_category_products_count () {
regreso;
}

10 - Haga que los campos de pago de cuenta sean obligatorios

add_filter ('woocommerce_checkout_fields', 'woo_filter_account_checkout_fields');

function 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;

devolver $ campos;
}

11 - Cambiar el nombre de una pestaña de producto

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

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

devolver $ pestañas;
}

12 - Lista de categorías de productos de WooCommerce

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

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

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

13 - Reemplazar el título de la página de la tienda

add_filter ('woocommerce_page_title', 'woo_shop_page_title');

función woo_shop_page_title ($ page_title) {

if ('Tienda' == $ page_title) {
devolver "Mi nuevo título";
}
}

14 - Cambiar el título de un widget

/ *
* Cambiar el título del widget
* /
add_filter ('widget_title', 'woo_widget_title', 10, 3);

función woo_widget_title ($ título, $ instancia, $ id_base) {

if ('onsale' == $ id_base) {
devolver "Mi nuevo título";
}
}

15 - Eliminar la configuración predeterminada de WooCommerce

add_filter ('woocommerce_catalog_settings', 'woo_remove_catalog_options');

function woo_remove_catalog_options ($ catálogo) {

sin establecer ($ catálogo [23]); // Recortar ceros (no)
sin configurar ($ catálogo [22]); // 2 decimales
sin establecer ($ catálogo [21]); // decimal sep (.)
sin establecer ($ catálogo [20]); // mil sep (,)
sin establecer ($ catálogo [19]); // posición de moneda (izquierda)
sin establecer ($ catálogo [18]); // posición de moneda (izquierda)
sin establecer ($ catálogo [5]); // ajax agregar al carrito (no)

devolver $ catálogo;
}

16 - Cambiar la dirección de correo electrónico "de"

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

17 - Decodificar desde el nombre en el correo electrónico de WooCommerce

función 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);

función 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 - Devolver identificadores de productos destacados

función woo_get_featured_product_ids () {
// Cargar desde caché
$ Featured_product_ids = get_transient ('wc_featured_products');

// Caché válido encontrado
if (falso! == $ Featured_product_ids)
return $ Featured_product_ids;

$ Featured = get_posts (array (
'post_type' => array ('product', 'product_variation'),
'posts_per_page' => -1,
'post_status' => 'publicar',
'meta_query' => array (
formación(
'key' => '_visibility',
'value' => array ('catálogo', 'visible'),
'compare' => 'IN'
),
formación(
'key' => '_featured',
'value' => 'yes'
)
),
'fields' => 'id => parent'
));

$ product_ids = array_keys ($ destacado);
$ parent_ids = array_values ​​($ destacado);
$ Featured_product_ids = array_unique (array_merge ($ product_ids, $ parent_ids));

set_transient ('wc_featured_products', $ Featured_product_ids);

return $ Featured_product_ids;
}

19 - Agregar campo personalizado para editar la página de dirección

// agrega campos para editar la página de dirección
función woo_add_edit_address_fields ($ fields) {

$ new_fields = array (
'date_of_birth' => array (
'label' => __ ('Fecha de nacimiento', 'woocommerce'),
'requerido' => falso,
'class' => array ('formulario-fila'),
),
);

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

devolver $ campos;

}

add_filter ('woocommerce_default_address_fields', 'woo_add_edit_address_fields');

20 - Visualizar shortcode del catálogo de productos onsale

function woocommerce_sale_products ($ atts) {

global $ woocommerce_loop;

extract (shortcode_atts (array (
'per_page' => '12',
'columnas' => '4',
'orderby' => 'fecha',
'order' => 'desc'
), $ atts));

$ woocommerce_loop ['columnas'] = $ columnas;

$ args = array (
'post_type' => 'producto',
'post_status' => 'publicar',
'ignore_sticky_posts' => 1,
'posts_per_page' => $ per_page,
'orderby' => $ orderby,
'order' => $ order,
'meta_query' => array (
formación(
'key' => '_visibility',
'value' => array ('catálogo', 'visible'),
'compare' => 'IN'
),
formación(
'key' => '_sale_price',
'valor' => 0,
'compare' => '>',
'type' => 'NUMERIC'
)
)
);
query_posts ($ args);
ob_start ();
woocommerce_get_template_part ('loop', 'shop');
wp_reset_query ();

return ob_get_clean ();
}

add_shortcode ('sale_products', 'woocommerce_sale_products');

21 - Tenga productos en venta

función woo_have_onsale_products () {

global $ woocommerce;

// Obtenga productos a la venta
$ product_ids_on_sale = array_filter (woocommerce_get_product_ids_on_sale ());

if (! empty ($ product_ids_on_sale)) {
volver verdadero;
} más {
falso retorno;
}

}

// Ejemplo:
if (woo_have_onsale_products ()) {
echo 'tener productos en venta';
} más {
echo 'ningún producto de venta';
}

22 - Establecer el monto mínimo de pedido

add_action ('woocommerce_checkout_process', 'wc_minimum_order_amount');
función wc_minimum_order_amount () {
global $ woocommerce;
$ mínimo = 50;
if ($ woocommerce-> cart-> get_cart_total (); < $minimum ) {
$woocommerce->add_error (sprintf ('Debe tener un pedido con un mínimo de% s para realizar su pedido.', $ mínimo));
}
}

23 - Ordenar por precio, fecha o título en la página de la tienda

add_filter ('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');

function custom_default_catalog_orderby () {
Fecha de regreso'; // También puede usar título y precio
}

24 - Redirigir botón de agregar al carrito a la página de pago

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

función redirect_to_checkout () {
global $ woocommerce;
$ checkout_url = $ woocommerce-> cart-> get_checkout_url ();
return $ checkout_url;
}

25 - Agregar destinatario de correo electrónico cuando se complete el pedido

función woo_extra_email_recipient ($ destinatario, $ objeto) {
$ destinatario = $ destinatario. ', [email protected]';
devolver $ destinatario;
}
add_filter ('woocommerce_email_recipient_customer_completed_order', 'woo_extra_email_recipient', 10, 2);

¡Y eso es! Espero que encuentres útiles estos fragmentos, todos fueron probados y funcionan bien, pero si tienes algún problema, házmelo saber en la sección de comentarios. ¡Que te diviertas! ��

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