You’ll need to study:
plugins/woocommerce/templates/content-single-product.php
unless your theme has a template override, in which case study:
themes/your-theme/woocommerce/content-single-product.php
The left bits use:
woocommerce_before_single_product_summary
and the right bits use
woocommerce_single_product_summary
So, for example, to move the sale flash from left to right you would write:`
remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
The “10” priority parameter whatever must be the same as the add_action() that put it there. Then:
add_action( 'woocommerce_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
There are 10 bits to swap over.
Your next issue is likely to be that the bits are now inside the wrong divs, so the styling will be a mess. There’s 3 ways forward from here:
1. get real good at styling using custom css
2. remove all 10 bits from where they are now, then put all 10 bits on the left, but in a different order which you can control with the priority parameter. The current right div will remain where it is but empty. Some css may still be needed but not so much.
Where you need to insert a div into the sequence, use something like:
add_action( 'woocommerce_before_single_product_summary', add_custom_div', 30 );
function add_custom_div() {
print '<div class="summary entry-summary">';
}
You’ll need a similar snippet to close this div after what is currently the right bits.
3. Make a child theme and create your own page template at:
themes/your-child-theme/woocommerce/content-single-product.php
Whatever you decide, you’ll need to maintain it if Woo ever changes their relevant code.
Your removes and adds go in functions.php for your child theme or you can use the “My Custom Functions” plugin.