I had the pleasure to speak at WordCamp Prague 2019. I spoke about “10 PHP Snippets to Increase WooCommerce Sales” and managed to show some simple coding to the audience. Trust me – increasing your WooCommerce sales can also be done with a free, short, easy PHP snippet.

So, given that I want to share all the snippets I talked about, this is a quick recap. Copy them, test them (a must!) and then use them. And let me know if your conversion rate and/or AOV (average order value) increased!

At the bottom of the page you also find my talk slides. Enjoy:)

1. “Order by 6pm and get it delivered tomorrow!” notice @ Single Product Page


/**
 * @snippet       Pressure notice @ Single Product Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_single_product_summary', 'bbloomer_display_pressure_badge', 6 );
  
function bbloomer_display_pressure_badge() {
    echo '<div class="woocommerce-message">Order by 6pm and get it delivered tomorrow!</div>';
}

Adding some “pressure” to the WooCommerce single product page

2. “Secure payments” image @ Checkout Page


/**
 * @snippet       “Secure payments” image @ Checkout Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_review_order_after_submit', 'bbloomer_trust_place_order' );
 
function bbloomer_trust_place_order() {
    echo '<img src="https://www.paypalobjects.com/digitalassets/c/website/marketing/na/us/logo-center/9_bdg_secured_by_pp_2line.png" style="margin: 1em auto">';
}

Adding a secure badge on the WooCommerce Checkout page

3. Edit “Only 1 left in stock” @ Single Product Page


/**
 * @snippet       “Only 1 left in stock” @ Single Product Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_filter( 'woocommerce_get_availability_text', 'bbloomer_edit_left_stock', 9999, 2 );

function bbloomer_edit_left_stock( $text, $product ) {
	$stock = $product->get_stock_quantity();
  	if ( $product->is_in_stock() && $product->managing_stock() && $stock <= get_option( 'woocommerce_notify_low_stock_amount' ) ) $text .= '. Get it today to avoid 5+ days restocking delay!';
	return $text;
}

Changing the scarcity message on the WooCommerce single product page

4. Distraction-free Checkout


/**
 * @snippet       Distraction-free Checkout
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'wp', 'bbloomer_nodistraction_checkout' );

function bbloomer_nodistraction_checkout() {
	if ( ! is_checkout() ) return;
	remove_action( 'storefront_header', 'storefront_social_icons', 10 );
	remove_action( 'storefront_header', 'storefront_secondary_navigation', 30 );
	remove_action( 'storefront_header', 'storefront_product_search', 40 );
	remove_action( 'storefront_header', 'storefront_primary_navigation', 50 );
	remove_action( 'storefront_header', 'storefront_header_cart', 60 );
	remove_action( 'storefront_footer', 'storefront_footer_widgets', 10 );
}

5. “Try before you buy” @ Single Product Page


/**
 * @snippet       Buy a sample @ Single Product Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_single_product_summary', 'bbloomer_add_free_sample_add_cart', 35 );
 
function bbloomer_add_free_sample_add_cart() {
	echo '<p><a href="/?add-to-cart=953" class="button">Add Sample to Cart</a></p>';
}

Adding a “buy sample” button on the WooCommerce single product pge

6. Upsell @ Thank-you Page


/**
 * @snippet       Upsell @ Thank-you Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_thankyou', 'bbloomer_thankyou_upsell', 5 );
 
function bbloomer_thankyou_upsell() {
echo '<h2>Customers also bought...</h2>';
echo do_shortcode( '[products limit="3" columns="3" orderby="popularity" on_sale="true" ]' );
}

Showing products on sale on the WooCommerce thank you page

7. Bulk discount @ Checkout Page


/**
 * @snippet       Bulk discount @ Checkout Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_before_cart', 'bbloomer_apply_bulk_coupon' );
 
function bbloomer_apply_bulk_coupon() {
    $coupon_code = 'bulk';
	if ( WC()->cart->get_cart_contents_count() > 5 ) {
    	if ( ! WC()->cart->has_discount( $coupon_code ) ) WC()->cart->add_discount( $coupon_code );
	} else {
		if ( WC()->cart->has_discount( $coupon_code ) ) WC()->cart->remove_coupon( $coupon_code );
	}
}

8. Product Add-ons @ Single Product Page


/**
 * @snippet       Product Add-ons @ Single Product Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_before_add_to_cart_quantity', 'bbloomer_gift_wrap', 35 );
  
function bbloomer_gift_wrap() {    
	?>
	<label><input type="checkbox" name="gift-wrap" value="Yes">$2 Gift Wrap?</label>
 	<?php
}
  
add_filter( 'woocommerce_add_cart_item_data', 'bbloomer_store_gift', 10, 2 );
  
function bbloomer_store_gift( $cart_item, $product_id ) {
	if( isset( $_POST['gift-wrap'] ) ) $cart_item['gift-wrap'] = $_POST['gift-wrap'];
	return $cart_item; 
}

add_action( 'woocommerce_cart_calculate_fees', 'bbloomer_add_checkout_fee' );
 
function bbloomer_add_checkout_fee() {
	foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        if ( isset( $cart_item['gift-wrap'] ) ) {
            $itsagift = true;
            break;
        }
    }
    if ( $itsagift == true ) WC()->cart->add_fee( 'Gift Wrap', 2 );
}

9. BOGO


/**
 * @snippet       BOGO
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_filter( 'woocommerce_add_to_cart_validation', 'bbloomer_bogo', 10, 3 );
 
function bbloomer_bogo( $passed, $product_id, $quantity ) {
	$sku_with_gift = 'sku0001';
	$sku_free_gift = 'sku0002'; 
	$product = wc_get_product( $product_id );
	$sku_this = $product->get_sku();
 	if ( $sku_this == $skuswithgift ) {
    	WC()->cart->add_to_cart( wc_get_product_id_by_sku( $sku_free_gift ) );
	}
	return $passed;
}

10. Free Shipping Threshold @ Cart Page


/**
 * @snippet       Free Shipping Threshold @ Cart Page
 * @how-to        Get CustomizeWoo.com FREE
 * @sourcecode    https://businessbloomer.com/?p=111758
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.5.4
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */ 

add_action( 'woocommerce_before_cart', 'bbloomer_free_shipping_cart_notice' );
 
function bbloomer_free_shipping_cart_notice() {
	$threshold = 80;
	$current = WC()->cart->get_subtotal(); 
	if ( $current < $threshold ) {
		wc_print_notice( 'Get free shipping if you order ' . wc_price( $threshold - $current ) . ' more!', 'notice' );
	}
}

Slides

Share:

Leave a Reply