9 códigos más con los que mejorar tu WooCommerce

Hace más de un año os trajimos un artículo en el que os mostrábamos 9 códigos para mejorar tu tienda online desarrollada con WooCommerce. El artículo fue muy popular ya que se compartió muchísimo a través de las redes sociales. Es por eso que en esta ocasión os hemos traido otros 9 códigos más con los que mejorar tu WooCommerce. Todos sabéis que WooCommerce es un plugin súper potente con el que podemos convertir nuestro WordPress en una tienda online, pero aún así cuenta con ciertas deficiencias. Deficiencias que como bien conocéis, podremos suplir mediante plugins para WordPress, o bien mediante código.

Códigos para WooCommerce

A continuación te muestro 9 códigos para WooCommerce que te pueden venir muy, pero que muy bien.

woocommerce

Añadir el método de pago al correo que se envía después del pedido

add_action( 'woocommerce_email_after_order_table', 'anadir_metodo_pago_correo', 15, 2 );
 
function anadir_metodo_pago_correo( $order, $is_admin_email ) {
  if ( $is_admin_email ) {
    echo '<p><strong>Metodo de pago:</strong> ' . $order->payment_method_title . '</p>';
  }
}

Redireccionar el «añadir al carrito» a la página de checkout

add_filter ('add_to_cart_redirect', 'redireccionar_al_checkout');

function redireccionar_al_checkout() {
    global $woocommerce;
    $checkout_url = $woocommerce->cart->get_checkout_url();
    return $checkout_url;
}

Traducir cualquier texto rápidamente

add_filter('gettext',  'traducir');
add_filter('ngettext',  'traducir');
 
function traducir($translated) {
     $translated = str_ireplace('Choose an option',  'Escoge una opcion',  $translated);
     return $translated;
}

Excluir cualquier categoría del widget de categorías

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' );

function woo_product_cat_widget_args( $cat_args ) {
	$cat_args['exclude'] = array('16');
	return $cat_args;
}

Añadir campos personalizados a una variación de producto

//Mostrar cammpos
add_action( 'woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2 );
//JS para añadir campos a las nuevas variaciones
add_action( 'woocommerce_product_after_variable_attributes_js', 'variable_fields_js' );
//Guardar los campos de las variaciones
add_action( 'woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1 );

function variable_fields( $loop, $variation_data ) { ?>	
<tr>
	<td>
		<div>
			<label></label>
			<input type="text" size="5" name="my_custom_field[]" value=""/>
		</div>
	</td>
</tr>
<tr>
	<td>
		<div>
			<label></label>		
		</div>
	</td>
</tr>
<?php }
 
function variable_fields_process( $post_id ) {
	if (isset( $_POST['variable_sku'] ) ) :
		$variable_sku = $_POST['variable_sku'];
		$variable_post_id = $_POST['variable_post_id'];
		$variable_custom_field = $_POST['my_custom_field'];
		for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
			$variation_id = (int) $variable_post_id[$i];
			if ( isset( $variable_custom_field[$i] ) ) {
				update_post_meta( $variation_id, '_my_custom_field', stripslashes( $variable_custom_field[$i] ) );
			}
		endfor;
	endif;
}

Mostrar el texto «Producto ya en el carrito» en lugar de «Añadir al carrito»

// Cambiar el texto "Añadir al carrito" por "Producto ya en carrito" en ficha de producto
add_filter( 'woocommerce_product_single_add_to_cart_text', 'texto_boton_carrito' );

function texto_boton_carrito() {
	global $woocommerce;
	foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
		$_product = $values['data'];
		if( get_the_ID() == $_product->id ) {
			return __('Producto ya en carrito ¿Añadir otra vez?', 'woocommerce');
		}
	}
	return __('Añadir al carrito', 'woocommerce');
}

// Cambiar el texto "Añadir al carrito" por "Producto ya en carrito" en archivo de productos
add_filter( 'add_to_cart_text', 'texto_boton_carrito_archive' );

function texto_boton_carrito_archive() {
	global $woocommerce;
	foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
		$_product = $values['data'];
		if( get_the_ID() == $_product->id ) {
			return __('Producto ya en carrito', 'woocommerce');
		}
	}
	return __('Añadir al carrito', 'woocommerce');
}

Hacer campos obligatorios en el checkout

add_filter( 'woocommerce_checkout_fields', 'campos_obligatorios_checkout' );
 
function campos_obligatorios_checkout( $fields ) {
	$fields['account']['account_username']['required'] = true;
	$fields['account']['account_password']['required'] = true;
	$fields['account']['account_password-2']['required'] = true;

	return $fields;
}

Cambiar el «from» de los correos

function mail_from_personalizado() {
        global $woocommerce;
        return html_entity_decode( '[email protected]' );
}
add_filter( 'wp_mail_from', 'mail_from_personalizado', 99 );

Establecer una cantidad mínima al realizar un pedido

add_action( 'woocommerce_checkout_process', 'pedido_minimo' );
function pedido_minimo() {
	global $woocommerce;
	$minimum = 50;
	if ( $woocommerce->cart->get_cart_total(); < $minimum ) {
           $woocommerce->add_error( sprintf( 'Tu pedido debe ser de al menos %s€ para procesarse.' , $minimum ) );
	}
}

Bonus: Añadir campos personalizados en la página de direcciones

function anadir_campos_direcciones( $fields ) {
	$new_fields = array(
		'date_of_birth'     => array(
		'label'             => __( 'Fecha de nacimiento', 'woocommerce' ),
		'required'          => false,
		'class'             => array( 'form-row' ),
	),
);
$fields = array_merge( $fields, $new_fields );
return $fields;
}

add_filter( 'woocommerce_default_address_fields', 'anadir_campos_direcciones' );

Y hasta aquí nuestro artículo sobre 9 códigos más con los que mejorar tu WooCommerce. Espero que te haya gustado y, si te ha resultado útil, no dudes en compartirlo en redes sociales. ¡Nos leemos!

Suscríbete a la newsletter





Últimos artículos

Scroll al inicio