Documentos de Académico
Documentos de Profesional
Documentos de Cultura
WC Ebook PDF
WC Ebook PDF
COMPRAR PLUGINS?
CON ESTOS CÓDIGOS
CONSEGUIRÁS ELEVAR
TU TIENDA WOOCOMMERCE
AL SIGUIENTE NIVEL
22 FUNCIONES
OCULTAS PARA
WOOCOMMERCE
Recopilados y Desarrollados por Alex Mateo y Antonio Cantero
INSERTAR NIF
EL PRIMER PASO es insertar un campo en la página de
pago de woocommerce que puedes verlo AQUI
Luego instalas este plugin gratuito: Woocommerce pdf
EN FACTURA
invoice & packing list, para que aparezca el DNI con
este plugin es necesario que edites el function.php de
tu tema e insertes este código.
DE EMPEZAR
add_filter( ‘wpo_wcpdf_billing_address’, ‘incluir_nif_en_factura’ );
function incluir_nif_en_factura( $address ){
global $wpo_wcpdf;
echo $address . ‘<p>’;
$wpo_wcpdf->custom_field( ‘NIF’, ‘NIF: ‘ );
echo ‘</p>’;
}
Los códigos aquí expuestos deben de añadirse al final del Configurar gastos de envío gratis
fichero functions.php de tu tema (lo puedes encontrar en
“Apariencia > Editor“) o usando el plugin Code Snippets.
para algunos productos
Te recomendamos que antes de añadir cualquier código a Para esta opción se pueden usar varios plugins,
pero con el fin de no sobrecarga tu tienda con
tu tienda online, lo pruebes en un sitio de pruebas o en un muchos plugins instalados, te explicamos a con-
tinuación un truco para hacerlo con las opcio-
servidor local. nes nativas de WooCommerce.
Todos los códigos se han testado previamente con las últi- El truco consiste en marcar el producto como
“Virtual“. (Lo puedes hacer desde la página de
mas versiones de WordPress y WooCommerce. edición del producto, en el apartado “Infor-
mación del producto“).
Y por último pegar el siguiente código al final
en base a las etiquetas. //* Redirige al cliente a una página de agradecimiento personalizada cuando finaliza
su compra
add_action( ‘template_redirect’, ‘redirige_pagina_agradecimiento_personalizada’ );
Por defecto, WooCommerce muestra los pro- function redirige_pagina_agradecimiento_personalizada(){
ductos relacionados en base a su categoría y sus global $wp;
etiquetas. Sin embargo, si no quieres que tenga
en cuenta la categoría, sino solamente las etiqu- if ( is_checkout() && ! empty( $wp->query_vars[ ‘order-received’ ] ) ) {
etas, tendrás que incluir el siguiente código al fi-
nal de tu fichero functions.php:del fichero func- wp_redirect( ‘http://www.tusitioweb.com/pagina-de-agradecimiento/’ );
tions.php de tu tema: exit;
}
}
Limitar el envío a
independientemente del estado en que
se encuentren; “En espera“, “Procesando” o
“Completado“.
En muchos casos, sólo nos interesa ver en los
informes los pedidos que están completados
y excluir el resto. Esto se puede hacer
algunas regiones
añadiendo el siguiente código snippet al final
del functions.php:
//* Oculta laS opciones de gasto de envío para algunas regiones
function is_state_without_shipping(){
global $woocommerce;
//* Muestra solo pedidos completados en los informes global $states;
add_filter( ‘woocommerce_reports_get_order_report_data_args’, ‘muestra_pedidos_ $isState = false;
completados_informes’ ); //Aquí define tu lista de estados o provincias sin envío
function muestra_pedidos_completados_informes( $args ) { $states_list = array( ‘codigo_provincia’ );
$customer_state = $woocommerce->customer->get_shipping_state();
$args[ ‘order_status’ ] = array( ‘completed’ ); // Comprueba si el destino coincide con una región sin envío disponible
if( in_array( $customer_state, $states_list) ){
return $args; $isState = true;
} }
return $isState;
a la página de pago
Consiste en que después de que el cliente haga clic $state = is_state_without_shipping();
en el botón de “Añadir al carro“, se le redirija a la pá-
gina de pago. if ( $state ) {
Esta opción resulta muy interesante cuando usas WooCom- // Deshabilita la opción de envío a estas provincias
merce como página de ventas y no como tienda. En estos $rates = array();
casos, desde la página de ventas solo puedes comprar el pro- wc_add_notice( ‘Lo sentimos, pero la opción de envíos no está disponible para esta región.’, ‘error’ );
ducto que se esté promocionando, por lo que no tiene sen- }
tido pasar por la página de carrito para revisar la compra. return $rates;
}
Para redirigir al cliente directamente a la página de pago,
debes usar el siguiente código:
// Redirige a la página de pago después de Lo único que tienes que configurar son los códigos de las provincias o estado que no dispongan de envío. Para ello,
añadir el producto en la línea:
add_filter( ‘woocommerce_add_to_cart_
redirect’, ‘custom_add_to_cart_redirect’ ); $states_list = array( ‘codigo_provincia’ );
function custom_add_to_cart_redirect() {
Sustituye ‘codigo_provincia’ por los códigos que correspondan a cada región separados por comas. Por ejemplo;
update_option( ‘woocommerce_cart_ para Ceuta y Melilla, sería:
redirect_after_add’ , ‘yes’ );
return WC()->cart->get_checkout_url(); $states_list = array( ‘CE’, ‘ML’ );
}
Obligar la compra de productos
combinados Ocultar el formulario
para introducir cupones
descuento si no tienes
Con este truco puede sugerir la compra de dos productos combinados que se suelen
promociones activas
vender juntos. Puede resultar interesante cuando se venden productos por piezas.
Para poder aplicar este truco debes pegar este código al final de tu fichero ¿Sabías que un buen porcentaje de los abandonos de carrito tiene su origen en el
functions.php: formulario para validar los cupones descuento?
Un porcentaje de las ventas online se pierden debido a que el cliente antes de hacer
//* Obliga la compra de productos combinado el pago, sale de la web en busca de cupones descuento y si no encuentra ninguno,
add_action( ‘woocommerce_after_calculate_totals’, ‘forzar_compra_productos_combinados’, 10 ); hay casos en los que no vuelve a retomar la compra.
function forzar_compra_productos_combinados( $cart ){
$cart_items = $cart->get_cart();
$products_added_list = array();
// Tu lista de productos (SOLO 2 PRODUCTOS)
$products_list = array( ‘14893’, ‘14881’ );
$products_amount_list = count( $list_products );
foreach ( $cart_items as $key => $item ) {
$pos = array_search( $item[ ‘data’ ]->id, $products_list );
if ( isset( $pos ) ) {
$products_added_list[] = $products_list[ $pos ]; Para evitar eso, puedes hacer 2 cosas:
array_splice( $products_list, $pos, 1);
} Desactivar los cupones en tu tienda desmarcando la opción “Habilitar el uso de
} cupones” que encontrarás en “WooCommerce > Ajustes > Finalizar compra“.
if ( !empty( $products_list ) || ( $products_amount_list !== count( $list_products )) ) {
$product_added_name = get_the_title( $products_added_list[0] ); Ocultar el formulario de los cupones, pero mantener activado el uso de cupones
$product_required_name = get_the_title( $products_list[0] ); por si los canjeas a través de enlaces como hemos visto antes. Para ocultar el for-
wc_add_notice( ‘AVISO: El producto “’.$product_added_name.’”, necesita este otro producto; “’.$product_ mulario, usa el siguiente código:
required_name.’” para funcionar.’ , ‘notice’ );
}
}
add_action( ‘woocommerce_before_cart’, function(){ // Oculta el campo de cupones descuento del formulario
wc_clear_notices(); function ocultar_campo_cupones( $enabled ) {
} );
if ( is_cart() || is_checkout() ) {
$enabled = false;
}
Para configurarlo solo tienes que sustituir los números de esta línea: “$prod- return $enabled;
ucts_list = array( ‘14893’, ‘14881’ );” por los IDs de tus productos. }
add_filter( ‘woocommerce_coupons_enabled’, ‘ocultar_campo_cupones’ );
Personalizar la etiqueta de Simplificar la página
de pago eliminando
campos
Este truco consiste en cambiar el texto de la etiqueta “Rebajado” que se El formulario para los datos de facturación de WooCommerce solicita una serie de da-
muestra en la foto de producto cuando aplicas una bajada de precios. Para tos por defecto, varios de ellos prescindibles según a quien vaya dirigida la venta. Por
ello sólo tienes que usar el siguiente código snippet: ejemplo, una tienda online que sólo vende en España al cliente final, no tiene sentido
que la página de pago solicite el país o el nombre de empresa. Y lo mismo ocurre con el
En este caso hemos cambiado el texto “Rebajado” por el de “Oferta exclusiva“. número de teléfono del cliente o su provincia, yo diría que con su dirección de correo
Aunque puedes usar el texto que desees sustituyendo la frase entre comillas -en electrónico y su código postal es más que suficiente.
este caso “¡Oferta exclusiva!”- en la línea: __(‘¡Oferta exclusiva!’, ‘woocommerce’ )
No tiene sentido hacer perder tiempo al cliente pidiéndole datos que no vas a usar.
Con el siguiente código te muestro cómo eliminar los campos; País, Empresa, Provincia
y Número de teléfono.
CURSO
‘Terminar compra’, ‘woocommerce’ ); ?></a>
<?php
}
El código anterior muestra el texto “Terminar compra” en lugar del texto “Ir a la caja“. Para añadir tu propio texto, sólo
tienes que sustituir dentro del código anterior donde pone “Terminar compra” por el texto que desees, siempre entre
comillas.
EBOOK REALIZADO POR: Para añadir tu propio texto sustituye en el código anterior la palabra Comprar por el
texto que desees, siempre entre comillas simples.
ALEX MATEO (sisube.com) Y ANTONIO CANTERO ( woodemia.com)
FOTOGRAFIAS RECOPILADAS EN FREEPIK.ES
Configurar una Eliminar la
cantidad de pedido pestaña de
mínimo información
Con este truco podrás configurar una cantidad de pedido mínimo en tu tienda online y mostrar un aviso adicional
de la página de
al cliente mientras no cumpla la condición.
Si la suma total del pedido no alcanza el mínimo, el cliente no podrá hacer el pago. Para añadir esta
producto
funcionalidad a tu tienda WooCommerce sólo tienes que pegar el siguiente código al final del fichero
functions.php de tu tema:
Modificar el orden
);
} else {
por defecto de la
wc_add_notice(
sprintf( ‘Debe hacer un pedido con un mínimo de %s para poder finalizar. El coste
total de su pedido actual es de %s.’ ,
página de productos
wc_price( $minimum ),
wc_price( WC()->cart->total )
), ‘error’
);
} WooCommerce muestra por defecto los productos de la tienda
} según su fecha de publicación, es decir, los últimos productos que
} publicaste, son los primeros en mostrarse en la página de la tienda.
Puedes cambiar el orden por defecto en el que se muestran los productos y basarlo en otros criterios, como por
ejemplo; el precio o el nombre por orden alfabético. Para conseguir esto, debes añadir el siguiente código al final del
fichero functions.php de tu tema:
Para definir tu cantidad mínima de pedido, sustituye
el valor de la línea “$minimun = 80;” por el valor que te
interese. Por ejemplo, para un pedido mínimo de 50€ // Muestra el orden de los productos del catálogo según en nombre
sería; $minimun = 50; add_filter(‘woocommerce_default_catalog_orderby’, ‘orden_catalogo_productos_
personalizado’);
function orden_catalogo_productos_personalizado() {
return ‘title’;
}
Quitar una categoría del widget Deshabilitar una
de categorías de productos pasarela de pago
específica para
determinados países
Este truco resulta interesante aplicarlo cuando trabajas con alguna pasarela de pago que sólo funciona en
determinados países o la opción de pago en entrega (en España, pago contrareembolso).
El truco consiste en pegar el siguiente código al final del fichero functions.php de tu tema:
WooCommerce dispone de un widget para mostrar en tu tienda
el listado de categorías de productos que tengas disponible.
Sin embargo, si tienes por ejemplo una categoría de productos // Deshabilita pasarela de pago para determinados países
premium disponibles sólo para determinados clientes y no quieres add_filter( ‘woocommerce_available_payment_gateways’, ‘deshabilita_pasarela_pago_
que esa categoría se muestre en la tienda, puedes conseguirlo algunos_paises’ );
añadiendo el siguiente código al final del fichero functions.php function deshabilita_pasarela_pago_algunos_paises( $available_gateways ) {
de tu tema:
//Lista de países a los que deshabilitar la pasarela de pago
$countries = array( ‘FR’, ‘PT’ );
//Pasarela de pago a deshabilitar
$payment_gateway = ‘cod’;
// Elimina una categoría del widget de categorías de producto
add_filter( ‘woocommerce_product_categories_widget_args’, ‘elimina_categoria_ if ( isset( $available_gateways[ $payment_gateway ] ) && in_array( WC()->customer->get_
producto_widget’ ); country(), $countries ) ) {
function elimina_categoria_producto_widget( $cat_args ) {
unset( $available_gateways[ $payment_gateway ] );
$cat_args[ ‘exclude’ ] = array( ‘165’ ); }
return $cat_args; return $available_gateways;
} }
Para definir los países a los que deseas deshabilitar la pasarela de pago, tienes que añadir
su código ISO (puedes ver los códigos ISO de todos los países aquí) entre comillas en
esta línea; array( ‘FR’, ‘PT’ ) sustituyendo FR y PT por los códigos de tus países. (En este
ejemplo, los códigos FR y PT se refieren a Francia y Portugal)
Para configurarlo sólo tienes que especificar el ID de la categoría de
producto que deseas quitar. Sustituye el texto “array( ‘165’ );” por “array( Por último, sólo te queda definir la pasarela de pago que vas a deshabilitar. Para ello
‘ID_Categoría’ );“. deberás sustituir en esta línea; $payment_gateway = ‘cod’; el ID ‘cod’ por el ID de tu
pasarela de pago. Puedes ver el ID de tu pasarela en “WooCommerce > Ajustes >
Finalizar Compra“, abajo en la sección “Pasarelas de pago“.
Mostrar tu tienda sólo a Usuarios Cambiar el número de productos
registrados relacionados que se deben mostrar
Aunque ya hay muchos temas premium que te pemiten configurar esto directamente
Esta configuración es muy usada por ejemplo, para propietarios de tiendas que sólo desde su panel de ajustes, si tu tema no dispone de esa opción, no te preocupes
venden a mayoristas. porque con este sencillo truco podrás conseguirlo igualmente.
Pegando el siguiente código al final de tu fichero functions.php conseguirás que
todos las personas que no estén registradas e intenten acceder a la página de la // Personaliza la forma en que se muestran los productos relacionados
tienda, la de carrito o la de pago, sean redirigidas a la página de registro de cliente. add_filter( ‘woocommerce_output_related_products_args’, ‘salida_productos_relacionados_
personalizada’ );
function salida_productos_relacionados_personalizada( $args ) {
// Tienda sólo visible a usuarios registrados
add_action( ‘template_redirect’, ‘tienda_visible_usuarios_registrados’ ); // Muestra 4 productos distribuidos en filas de 2
function tienda_visible_usuarios_registrados() { $args[ ‘posts_per_page’ ] = 4; // Número de productos a mostrar
$args[ ‘columns’ ] = 2; // Número de productos que se muestra por cada fila
if ( !is_user_logged_in() && ( is_woocommerce() || is_cart() || is_checkout()) ) {
return $args;
$my_account_page_id = get_option( ‘woocommerce_myaccount_page_id’ ); }
wp_redirect( get_permalink( $my_account_page_id ));
exit;
}
}