Shortcode to hide post author and date

– add to child style.css


 /* hide post author and date */
.post .entry-meta {display:none;} 

Shortcode to hide content on smartphones

– add to child theme functions.php


// Hide Content on Mobile Devices
// Using this is as simple as: Some content here. “Some content here” won’t just be hidden – 
// it will not be sent to the browser on mobile devices.
function not_mobile_shortcode($atts, $content = '') {
	if (wp_is_mobile() === true) {
		$content = '';
	}
    return $content;
}
add_shortcode('not_mobile', 'not_mobile_shortcode');

Remove Billing Address for Free Virtual Orders in WooCommerce

– add to child theme functions.php


/**
 * Removes coupon form, order notes, and several billing fields if the checkout doesn't require payment
 * Tutorial: https://www.skyverge.com/blog/how-to-simplify-free-woocommerce-checkout/
 */
function sv_free_checkout_fields() {
	
	// Bail we're not at checkout, or if we're at checkout but payment is needed
	if ( ! is_checkout() || ( is_checkout() && WC()->cart->needs_payment() ) ) {
		return;
	}
	
// remove coupon forms since why would you want a coupon for a free cart??
//	remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
	
	// Remove the "Additional Info" order notes
	add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
	// Unset the fields we don't want in a free checkout
	function unset_unwanted_checkout_fields( $fields ) {
	
		// add or remove billing fields you do not want
		// list of fields: http://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-2
		$billing_keys = array(
			'billing_company',
			'billing_phone',
			'billing_address_1',
			'billing_address_2',
			'billing_city',
			'billing_postcode',
			'billing_country',
			'billing_state',
		);
		// unset each of those unwanted fields
		foreach( $billing_keys as $key ) {
			unset( $fields['billing'][$key] );
		}
		
		return $fields;
	}
	add_filter( 'woocommerce_checkout_fields', 'unset_unwanted_checkout_fields' );

//Change the Billing Address checkout label
function wc_billing_field_strings( $translated_text, $text, $domain ) {
    switch ( $translated_text ) {
        case 'Billing Address' :
            $translated_text = __( 'Customer Information', 'woocommerce' );
            break;
    }
    return $translated_text;
}
add_filter( 'gettext', 'wc_billing_field_strings', 20, 3 );

– add to child theme functions.php


// Change In Stock or Out of Stock text
add_filter( 'woocommerce_get_availability', 'custom_get_availability', 1, 2);
  
function custom_get_availability( $availability, $_product ) {
    //change text "In Stock' to 'SPECIAL ORDER'
    if ( $_product->is_in_stock() ) $availability['availability'] = __('SEATS ARE AVAILABLE', 'woocommerce');
  
    //change text "Out of Stock' to 'SOLD OUT'
    if ( !$_product->is_in_stock() ) $availability['availability'] = __('SORRY, THIS EVENT IS SOLD OUT!', 'woocommerce');
        return $availability;
    }

– WooCommerce shortcodes, add to child functions.php


// Change the breadcrumb 
add_filter( 'woocommerce_breadcrumb_defaults', 'jk_change_breadcrumb_delimiter' );
function jk_change_breadcrumb_delimiter( $defaults ) {
	// Change the breadcrumb delimeter from '/' to '>'
	$defaults['delimiter'] = ' > ';
	return $defaults;
}  

– WooCommerce shortcodes, add to child style.css


/* Hide SKU on product pages */
.product .sku_wrapper {
display: none !important;
}

/* Hide product category and SKU */
.woocommerce .product_meta {
display: none;
}

/* Hide sort order dropdown */
.woocommerce-ordering {
display: none;
}

– WooCommerce shortcodes


/**
 * Change text strings
 *
 * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
 */
function my_text_strings( $translated_text, $text, $domain ) {
	switch ( $translated_text ) {
		case 'Sale!' :
			$translated_text = __( 'Clearance!', 'woocommerce' );
			break;
		case 'Add to cart' :
			$translated_text = __( 'Add to basket', 'woocommerce' );
			break;
		case 'Related Products' :
			$translated_text = __( 'Check out these related products', 'woocommerce' );
			break;
	}
	return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );

// WooCommerce: replace "Shop" page title
add_filter( 'woocommerce_page_title', 'custom_woocommerce_page_title');
function custom_woocommerce_page_title( $page_title ) {
  if( $page_title == 'Shop' ) {
    return "Product Categories";
  }
}

// WooComerce: show empty categories
add_filter( 'woocommerce_product_subcategories_hide_empty', 'show_empty_categories', 10, 1 );
function show_empty_categories ( $show_empty ) {
    $show_empty  =  true;
    return $show_empty;
}