Projects Engine - WooCommerce

How to Edit the WooCommerce Single Product Template Programmatically with Examples

WooCommerce is one of the most popular e-commerce plugins for WordPress. It comes with a variety of hooks that allow developers to customize various aspects of the plugin.

Home / Blog / WooCommerce / How to Edit the WooCommerce Single Product Template Programmatically with Examples

WooCommerce is one of the most popular e-commerce plugins for WordPress. It comes with a variety of hooks that allow developers to customize various aspects of the plugin. In this article, we’ll discuss all of the WooCommerce single product hooks in WordPress.

Before we dive into the hooks, let’s first define what a hook is. In WordPress, hooks are used to execute custom code at specific points in the WordPress codebase. Hooks consist of two types: actions and filters. Actions are used to perform a specific task at a particular point in the codebase, while filters modify the output or behavior of an existing function.

Here’s an extensive explanation of some of the WooCommerce single product hooks in WordPress along with examples:

  • woocommerce_before_single_product: This action hook fires before the single product content. You can use this hook to add custom content, such as banners or promotional messages, above the product content.

Example:

add_action( 'woocommerce_before_single_product', 'my_custom_product_banner' );
function my_custom_product_banner() {
   // Add your custom content here
   echo '<div class="custom-banner">Get 10% off on all products</div>';
}
  • woocommerce_before_single_product_summary: This action hook fires before the product summary. You can use this hook to add custom content, such as images or videos, before the product summary.

Example:

add_action( 'woocommerce_before_single_product_summary', 'my_custom_product_image' );
function my_custom_product_image() {
   // Add your custom image here
   echo '<img src="path/to/image.jpg">';
}
  • woocommerce_single_product_summary: This action hook fires inside the product summary. You can use this hook to add custom content, such as product description or reviews, inside the product summary.

Example:

add_action( 'woocommerce_single_product_summary', 'my_custom_product_description', 5 );
function my_custom_product_description() {
   // Add your custom product description here
   echo '<div class="product-description">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>';
}
  • woocommerce_single_product_summary: This filter hook is used to modify the product summary. You can use this hook to modify the default product summary, such as hiding or adding elements.

Example:

add_filter( 'woocommerce_single_product_summary', 'my_modify_product_summary', 10 );
function my_modify_product_summary( $summary ) {
   // Modify the product summary here
   $new_summary = $summary . '<div class="custom-element">Custom element added</div>';
   return $new_summary;
}
  • woocommerce_single_product_meta: This action hook is used to display product meta information, such as SKUs or categories.

Example:

add_action( 'woocommerce_single_product_meta', 'my_custom_product_meta' );
function my_custom_product_meta() {
   // Display your custom product meta information here
   echo '<span class="product-sku">SKU: ' . get_post_meta( get_the_ID(), '_sku', true ) . '</span>';
}

By using these hooks, you can add or remove content, modify default content, and add custom functionality to the single product page.

Editing the single product page for WooCommerce in WordPress involves using a combination of hooks, filters, and template files. Here’s an overview of the steps involved:

  1. Identify the hooks and filters: WooCommerce provides a range of hooks and filters that you can use to customize the single product page. Review the list of hooks we covered in the previous answer to find the ones that you need for your customizations.
  2. Create a child theme: It’s a best practice to create a child theme before making any changes to your WordPress site. This way, you can make customizations without risking your site’s functionality. Create a child theme by creating a new directory in your /wp-content/themes/ directory, and creating a style.css file and a functions.php file in that directory. In the style.css file, add the following code:
/*
 Theme Name:   Your Child Theme Name
 Template:     projectsengine
*/
  1. Modify the single product template: WooCommerce uses a template file called single-product.php to display the single product page. To modify this file, create a new directory called woocommerce in your child theme directory, and create a new file called single-product.php in that directory. Copy the contents of the single-product.php file from your parent theme to the new file in your child theme, and make your changes there. Be sure to wrap your changes in the appropriate hooks and filters.

Here are some examples of customizations you can make to the single product page using hooks and filters:

  • Add custom content before the product summary:
add_action( 'woocommerce_before_single_product_summary', 'my_custom_content', 5 );
function my_custom_content() {
    echo '<p>Custom content goes here.</p>';
}
  • Remove the product description tab:
add_filter( 'woocommerce_product_tabs', 'remove_product_description_tab', 98 );
function remove_product_description_tab( $tabs ) {
    unset( $tabs['description'] );
    return $tabs;
}
  • Modify the product price display:
add_filter( 'woocommerce_get_price_html', 'custom_price_display', 100, 2 );
function custom_price_display( $price, $product ) {
    if ( $product->is_type( 'variable' ) ) {
        $price = '<span class="from-price">From: </span>' . $price;
    }
    return $price;
}
  • Modify the add-to-cart button text:
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_add_to_cart_text' );
function custom_add_to_cart_text( $text ) {
    $text = 'Buy Now';
    return $text;
}

These are just a few examples of the customizations you can make to the single product page using hooks and filters. With a little bit of PHP knowledge and creativity, you can create a unique and functional single-product page for your WooCommerce store.