Tag: Woocommerce checkout

WooCommerce: Add custom Add To Cart Message & Custom “Continue Shopping Link”

Add this code in function.php

 

<?php

/**

* Custom Add To Cart Messages

* Add this to your theme functions.php file

**/

add_filter( 'wc_add_to_cart_message', 'woocommrece_custom_add_to_cart_message' );

function woocommrece_custom_add_to_cart_message() {

global $woocommerce;

 

// Output success messages

if (get_option('woocommerce_cart_redirect_after_add')=='yes') :

 

$return_to = get_permalink(woocommerce_get_page_id('shop'));// Give the url, you want to redirect

 

$message = sprintf('<a href="%s">%s</a> %s', $return_to, __('Continue Shopping &rarr;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );

 

else :

 

$message = sprintf('<a href="%s">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('View Cart &rarr;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );

 

endif;

 

return $message;

}

/* Custom Add To Cart Messages */

?>
Advertisements

Woo-commerce: add to cart button redirect to checkout

Add this code in your function.php

/*
** Add to cart redirect to checkout
*/
add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

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

 

 

WooCommerce – Add a special field to the checkout, order emails and user/order meta

/**
 * Add the field to the checkout
 **/
add_action('woocommerce_after_order_notes', 'my_custom_checkout_field');

function my_custom_checkout_field( $checkout ) {

	echo '<div id="my_custom_checkout_field"><h3>'.__('My Field').'</h3>';

	/**
	 * Output the field. This is for 1.4.
	 *
	 * To make it compatible with 1.3 use $checkout->checkout_form_field instead:

	 $checkout->checkout_form_field( 'my_field_name', array( 
	 	'type' 			=> 'text', 
	 	'class' 		=> array('my-field-class orm-row-wide'), 
	 	'label' 		=> __('Fill in this field'), 
	 	'placeholder' 	=> __('Enter a number'),
	 	));
	 **/
	woocommerce_form_field( 'my_field_name', array( 
		'type' 			=> 'text', 
		'class' 		=> array('my-field-class orm-row-wide'), 
		'label' 		=> __('Fill in this field'), 
		'placeholder' 	=> __('Enter a number'),
		), $checkout->get_value( 'my_field_name' ));

	echo '</div>';

	/**
	 * Optional Javascript to limit the field to a country. This one shows for italy only.
	 **/
	?>
	<script type="text/javascript">
		jQuery('select#billing_country').live('change', function(){

			var country = jQuery('select#billing_country').val();

			var check_countries = new Array(<?php echo '"IT"'; ?>);

			if (country && jQuery.inArray( country, check_countries ) >= 0) {
				jQuery('#my_custom_checkout_field').fadeIn();
			} else {
				jQuery('#my_custom_checkout_field').fadeOut();
				jQuery('#my_custom_checkout_field input').val('');
			}

		});
	</script>
	<?php
}

/**
 * Process the checkout
 **/
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');

function my_custom_checkout_field_process() {
	global $woocommerce;

	// Check if set, if its not set add an error. This one is only requite for companies
	if ($_POST['billing_company'])
		if (!$_POST['my_field_name']) 
			$woocommerce->add_error( __('Please enter your XXX.') );
}

/**
 * Update the user meta with field value
 **/
add_action('woocommerce_checkout_update_user_meta', 'my_custom_checkout_field_update_user_meta');

function my_custom_checkout_field_update_user_meta( $user_id ) {
	if ($user_id && $_POST['my_field_name']) update_user_meta( $user_id, 'my_field_name', esc_attr($_POST['my_field_name']) );
}

/**
 * Update the order meta with field value
 **/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');

function my_custom_checkout_field_update_order_meta( $order_id ) {
	if ($_POST['my_field_name']) update_post_meta( $order_id, 'My Field', esc_attr($_POST['my_field_name']));
}

/**
 * Add the field to order emails
 **/
add_filter('woocommerce_email_order_meta_keys', 'my_custom_checkout_field_order_meta_keys');

function my_custom_checkout_field_order_meta_keys( $keys ) {
	$keys[] = 'My Field';
	return $keys;
}