Skip to content

Instantly share code, notes, and snippets.

/* Guest post box */
.guest-posts-box {
margin-bottom: 20px;
clear: both;
padding-left: 20px;
padding-right: 20px;
padding-top: 10px;
padding-bottom: 10px;
}
@acanza
acanza / guest-posts-box-shortcode.php
Created January 16, 2019 08:20
Shorcode para aplicar estilo a la caja de post invitado
//* Shorcode para aplicar estilo a la caja de post invitado
add_filter( 'the_content', 'shortcode_unautop', 100 );
add_shortcode( 'guest_post_box', 'guest_posts_shortcode');
function guest_posts_shortcode( $atts, $content = null ){
$output = '';
if ( !is_home() ) {
$output = '<div class="guest-posts-box">';
$output .= do_shortcode( $content );
@acanza
acanza / keep-showing-specific-out-of-stock-product-list.php
Last active December 4, 2018 17:21
[WooCommerce] Muestra algunos productos sin de stock aunque esté activada la opción de ocultarlos
// [WooCommerce] Muestra algunos productos sin de stock aunque esté activada la opción de ocultarlos
add_filter( 'woocommerce_product_is_visible', 'keep_showing_specific_out_of_stock_product_list', 10, 2 );
function keep_showing_specific_out_of_stock_product_list( $visible, $product_ID ){
$product_list = array( 18013, 18050 ); // Escribe dentro de los paréntesis, el listado de IDs de productos que quieras seguir mostrando separados por coma
return in_array( $product_ID, $product_list )? true : $visible;
}
@acanza
acanza / custom-no-shipping-available-message.php
Created November 29, 2018 16:49
Te permite personalizar el mensaje cuando no hay envíos disponibles
// Te permite personalizar el mensaje cuando no hay envíos disponibles
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) && version_compare( WC()->version , '3.0.0', '>' ) ){
add_filter( 'woocommerce_cart_no_shipping_available_html', 'custom_no_shipping_available_message', 99 );
add_filter( 'woocommerce_no_shipping_available_html', 'custom_no_shipping_available_message', 99 );
function custom_no_shipping_available_message( $message ){
$message_for_not_available_shipping_methods = 'Lo sentimos, pero no hacemos envío para tu zona. Sin embargo, <strong><a href="https://tudominio.com">puedes consultar aquí</a></strong> cuál es nuestro distribuidor oficial más cercano a ti.'; // Reemplaza el texto entre comillas por tu mensaje personalizado
return !empty( $message_for_not_available_shipping_methods )? wpautop( $message_for_not_available_shipping_methods ) : $message;
}
@acanza
acanza / restrict-shipping-methods-by-shipping-class.php
Last active November 19, 2019 13:23
[Solo sirve para WSS] Restringe métodos de envío cuando hay productos de una (o varias) clases de envío determinadas en el carrito
// [Solo sirve para WSS]Restringe métodos de envío cuando hay productos de una (o varias) clases de envío determinadas en el carrito
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) && version_compare( WC()->version , '3.0.0', '>' ) ){
add_filter( 'woocommerce_package_rates', 'restrict_shipping_methods_by_shipping_class', 10, 2 );
function restrict_shipping_methods_by_shipping_class( $rates, $package ){
$shipping_classes = array( 'bulky' ); //Listado de slugs de clases de envío que activan la restricción de métodos de envío
$methods_to_restrict = array( 34, 33 ); //Introduce dentro de los paréntesis los IDs -separados por coma- de los métodos de envío a bloquear
foreach ( $package[ 'contents' ] as $key => $value ) {
@acanza
acanza / personaliza-numero-productos-venta-cruzada-woocommerce.php
Created September 25, 2018 09:32
Personaliza el número de productos de venta cruzada a mostrar en WooCommerce
// Personaliza el número de productos de venta cruzada a mostrar en WooCommerce
add_filter( 'woocommerce_cross_sells_columns', 'change_cross_sells_columns' );
function change_cross_sells_columns( $columns ) {
return 2; // Reemplaza el 2 por el número de productos que desees mostrar
}
@acanza
acanza / htaccess-redirect-https.txt
Created May 2, 2018 15:35
[.htaccess] Directivas para redirigir desde HTTP a HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.tudominio.com/$1 [R,L]
</IfModule>
@acanza
acanza / exclude-specific-woocommerce-shipping-methods.php
Last active April 30, 2019 16:21
Oculta uno o varios métodos de envío cuando haya otros activos
// Oculta uno o varios métodos de envío cuando haya otros activos
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) ){
add_filter( 'woocommerce_package_rates' , 'exclude_specific_woocommerce_shipping_methods', 10, 2 );
function exclude_specific_woocommerce_shipping_methods( $rates, $package ) {
if ( !$rates ) {
return;
}
@acanza
acanza / add-custom-add-to-cart-button-text.php
Created March 2, 2018 17:34
Personaliza texto de botón de añadir al carrito en determinados productos
// Personaliza texto de botón de añadir al carrito en determinados productos
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) && version_compare( WC()->version , '3.0.0', '>' ) ){
// Añade un nuevo campo para el texto de la etiqueta en la ficha de producto
add_action( 'woocommerce_product_options_general_product_data', 'add_custom_add_to_cart_button_text' );
function add_custom_add_to_cart_button_text( ){
global $post;
wp_nonce_field( plugin_basename(__FILE__), 'woocommerce_custom_add_to_cart_button_text' );
echo '<div class="options_group show_if_simple show_if_variable">';
@acanza
acanza / show-cart-message-for-multiples-shipping-classes.php
Last active March 1, 2018 09:23
Muestra en el carrito un aviso de envío del pedido en varios paquetes cuando hay productos de varias clases de envío
// Muestra en el carrito un aviso de envío del pedido en varios paquetes cuando hay productos de varias clases de envío
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) && version_compare( WC()->version , '3.0.0', '>' ) ){
add_action( 'woocommerce_before_cart_contents', 'show_cart_message_for_multiples_shipping_classes' );
function show_cart_message_for_multiples_shipping_classes( $cart ){
$trigger_shipping_class = array( 'slug-clase-envio-1', 'slug-clase-envio-2' ); // Escribe aquí los slugs de las clases de envío para la que se activará el mensaje
$shipping_classes_in_cart = array();
$upsell_message = 'AVISO: Su pedido le será enviado en {{num_of_packages}} paquetes. <strong>Es probable que reciba los paquetes en fechas diferentes.</strong>';