// hide coupon field on the checkout page
function disable_coupon_field_on_checkout( $enabled ) {
if ( is_checkout() ) {
$enabled = false;
}
return $enabled;
}
add_filter( 'woocommerce_coupons_enabled', 'disable_coupon_field_on_checkout' );
// Change SKU label
function translate_woocommerce($translation, $text, $domain) {
if ($domain == 'woocommerce') {
switch ($text) {
case 'SKU':
$translation = 'Style Code';
break;
case 'SKU:':
$translation = 'Style Code:';
break;
}
}
return $translation;
}
/** Move SKU to below schort description */
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 30 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 40 );
/**
* @snippet Move product tabs beside the product image - WooCommerce
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode https://businessbloomer.com/?p=393
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.5.2
*/
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 60 );
/**
* Remove product data tabs
*/
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
function woo_remove_product_tabs( $tabs ) {
unset( $tabs['additional_information'] ); // Remove the additional information tab
return $tabs;
}
/**
* Change text strings
*/
add_filter('gettext', 'translate_like');
add_filter('ngettext', 'translate_like');
function translate_like($translated) {
$translated = str_ireplace('You may also like…', 'Complimentary Products', $translated);
return $translated;
}
// Remove all pruducts link from breadcrumbs
add_filter('wpseo_breadcrumb_single_link' ,'timersys_remove_companies', 10 ,2);
function timersys_remove_companies($link_output, $link ){
if( $link['text'] == 'Products' ) {
$link_output = '';
}
return $link_output;
}
// Change order of single product items
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10 );
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 20 );
/**
* @snippet Add next/prev buttons @ WooCommerce Single Product Page
* @how-to Get CustomizeWoo.com FREE
* @sourcecode https://businessbloomer.com/?p=20567
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.5.5
*/
add_action( 'woocommerce_before_single_product', 'bbloomer_prev_next_product' );
// and if you also want them at the bottom...
add_action( 'woocommerce_after_single_product', 'bbloomer_prev_next_product' );
// and if you want them after the description but before complimentary products
//add_action( 'woocommerce_after_single_product_summary', 'bbloomer_prev_next_product' );
function bbloomer_prev_next_product(){
echo '
';
/*
// Old Way
// 'product_cat' will make sure to return next/prev from current category
$previous = next_post_link('%link', '← PREVIOUS |', TRUE, ' ', 'product_cat');
$next = previous_post_link('%link', 'NEXT →', TRUE, ' ', 'product_cat');
// This isn't needed, nor is the $previous = or $next = above, as the functions echo the output themselves
//echo $previous;
//echo $next;
*/
global $post;
$post_categories = get_post_primary_category($post->ID);
$primary_category = $post_categories['primary_category']->term_id;
if ( $category_term = get_term_by( 'id', $primary_category, 'product_cat' ) ) {
$primary_category_name = $category_term->name;
}
$args = array(
'sort_id' => 2196,
'taxonomy' => 'product_cat',
'term_id' => $primary_category
);
ob_start();
next_post_type_link( '%link', __( '← PREVIOUS', 'vone' ), $args );
$previous = ob_get_clean();
ob_start();
previous_post_type_link( '%link', __( 'NEXT →', 'vone' ), $args );
$next = ob_get_clean();
echo $previous . ( ( $previous != '' && $next != '' ) ? ' | ' : '' ) . $next;
// echo $previous .
// ( ( $previous != '' && ( ( isset( $primary_category_name ) && $primary_category_name != '' ) || $next != '' ) ) ? ' | ' : '' ) .
// ( ( isset( $primary_category_name ) && $primary_category_name != '' ) ? $primary_category_name : '' ) .
// ( ( ( $previous != '' || ( isset( $primary_category_name ) && $primary_category_name != '' ) ) && $next != '' ) ? ' | ' : '' ) .
// $next;
echo '
';
}
// This function is needed to get the primary category (or the first if no primary) for the product sorting above.
// https://www.lab21.gr/blog/wordpress-get-primary-category-post/
function get_post_primary_category( $post_id, $term = 'product_cat', $return_all_categories = false ) {
$return = array();
if ( class_exists( 'WPSEO_Primary_Term' ) ) {
// Show Primary category by Yoast if it is enabled & set
$wpseo_primary_term = new WPSEO_Primary_Term( $term, $post_id );
$primary_term = get_term( $wpseo_primary_term->get_primary_term() );
if ( ! is_wp_error( $primary_term ) ) {
$return['primary_category'] = $primary_term;
}
}
if ( empty( $return['primary_category'] ) || $return_all_categories ) {
$categories_list = get_the_terms( $post_id, $term );
if ( empty( $return['primary_category'] ) && ! empty( $categories_list ) ) {
$return['primary_category'] = $categories_list[0]; //get the first category
}
if ( $return_all_categories ) {
$return['all_categories'] = array();
if ( ! empty( $categories_list ) ) {
foreach( $categories_list as &$category ) {
$return['all_categories'][] = $category->term_id;
}
}
}
}
return $return;
}
// Register new endpoint (URL) for My Account page
// Note: Re-save Permalinks or it will give 404 error
function my_account_endpoints_init() {
add_rewrite_endpoint( 'wishlist', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'my_account_endpoints_init' );
// Add new query var
function my_account_query_vars( $vars ) {
$vars[] = 'wishlist';
return $vars;
}
add_filter( 'query_vars', 'my_account_query_vars', 0 );
// Insert the new endpoint into the My Account menu
function add_endpoint_links_my_account( $items ) {
$items['wishlist'] = 'Wishlist';
return $items;
}
add_filter( 'woocommerce_account_menu_items', 'add_endpoint_links_my_account' );
// Add content to the new tab
// Note: add_action must follow 'woocommerce_account_{your-endpoint-slug}_endpoint' format
function wishlist_endpoint_content() {
echo do_shortcode( '[yith_wcwl_wishlist]' );
}
add_action( 'woocommerce_account_wishlist_endpoint', 'wishlist_endpoint_content' );
/**
* @snippet Reorder My Account Menu Links
* @author Misha Rudrastyh
* @url https://rudrastyh.com/woocommerce/my-account-menu.html#change-order
*/
add_filter( 'woocommerce_account_menu_items', 'misha_menu_links_reorder' );
function misha_menu_links_reorder( $menu_links ){
return array(
'dashboard' => __( 'Dashboard', 'woocommerce' ),
'edit-account' => __( 'Account Details', 'woocommerce' ),
'orders' => __( 'Order History', 'woocommerce' ),
'wishlist' => __( 'Wishlist', 'woocommerce' ),
'edit-address' => __( 'Addresses', 'woocommerce' ),
'customer-logout' => __( 'Logout', 'woocommerce' )
);
} Snakeskin Leather Torso - Gallery 58 Skip to contentSnakeskin Leather Torso
£1,500.00
Moulded 8 panel Serpent Torso with High Priestess style neckline.
Description
Moulded & sculptured to fit to the body from neckline to under bust
each panel of the body is cut, shaped, moulded & stitched to create the upper body torso
adjustable corsetry Lacing closure at both side seams & centre back
The high Priestess neck line is created higher at the centre back & lower at the front.
Shaped away from the neckline for added comfort
100% Leather Body
backed & lined with smooth Saddlery Leather in black
Specialist Clean Only
Created & Produced in London
History
The Serpent Torso, part of our Leather Corsetry range , launched with the collection ‘A Beautiful Revenge’
Fit & Dimensions
Comfortably shaping the body from above bust to hip & creating an hourglass silhouette.
adjustable corsetry Lacing closure at both side seams & centre back
The high Priestess neck line is created higher at the centre back & lower at the front.
Shaped away from the neckline for added comfort
Made to Measure Service Available
We offer a Made to Measure or Bespoke service on this style.
Click Our Services for more information.
Click to download How to Measure Guide.
To discuss your requirements call Gallery 58 on +44(0) 1206 842 954 (10am to 6pm GMT ) or email shop@gallery58.eu.
Alternatively register you interest below and we will contact you within 24 hours.
Page load link