My Courses > CustomizeWoo > Module 1 > Lesson 06: Where to Place Customization (Free)

Where to Place Customization (Free)


Do you need a Child Theme? No you don’t. But 5 minutes of extra work can give you lots of benefits.


Please note: English captions are enabled by default (click on “CC” in the video player to disable). Also, you can click on the “gear” icon to manage quality and playback speed. Enjoy!

Sorry, this video is visible to logged in and fully registered students only.
If you already enrolled in this course, please LOG IN
Otherwise, please enroll in the FREE / PRO COURSE
For any other queries, feel free to get in touch

Useful Links

Should I use WP Editor, FTP or “Code Snippets” to Customize PHP?

44 thoughts on “Where to Place Customization (Free)

  1. Excelente lección 😀

  2. Hi there, is the video still available? Because for some reason I am unable to view it on my end. There is an error message “ took too long to respond”.

    1. That’s weird. Can you try again?

  3. Hi Rodolfo
    Is it a good Idea to create my own PlugIn and put all of my Hooks inside, instead of using the functions.php in my ChildTheme?
    Thanx in adv. for any hint… (maybe why i {in some cases} should better not)

    1. If it works for you, then go ahead. I prefer to keep everything inside functions.php, together with all other theme/plugins customization.

      1. After experiencing a few WooCommerce sites, I must say I find your recommendation to put everything in child functions.php and style.css is brilliant in its simplicity and it is the standard I intend to uphold on every site I develop. It is so good to have a guide for these practical matters and to have a good sense of why this makes sense. Thank you for the excellent content!

  4. You mentioned that putting edited template files into a /woocommerce folder in the child theme isn’t good practice, but where should we put them to avoid the errors/or overwriting when WooCommerce is updated? I know that those changes don’t go in functions.php.


    1. Good question Fran! If you decide to override tamplates, then you can only put them under the /woocommerce folder.

      My opinion, however, is that you shouldn’t override templates as WooCommerce suggests (by copying whatever template file, customizing it, and placing it under /woocommerce).

      My philosophy is that 99% of customization can be done via hooks and therefore in the functions.php file of your child theme.

      E.g. if you want to move stuff around the single product page, you won’t need to override its template a là WooCommerce, but could simply “add” and “remove” single product page elements via functions.php. You can see many examples in the following modules

      Hope this helps!

  5. function skyverge_change_attribute_list_display( $output, $attributes, $values ) {
    return wpautop( wptexturize( implode( ‘<br />’, $values ) ) );
    add_filter( ‘woocommerce_attribute’, ‘skyverge_change_attribute_list_display’, 10, 3 );

    I was add this code in function.php of my child theme for replace the comma(,) to line break between two terms in woocommerce attribute on product page. But the problem is, it applied to my all attributes. I want to apply it on some specific attributes. How i can do it? Help me……

    1. Hi I suggest you take a look at “conditional logic”: Enjoy 🙂

  6. Hey Rodolfo,

    I have found your website increasingly helpful as I start customizing my woocommerce page and think it’s great that you offer a course!

    I have been looking for something like this on Udemy where I have already bought a few courses on PHP and Web Development. Just a thought, why don’t you provide your course there and make it accessible to a large number of people?

    While I find your course content interesting, I have to admit I find the price point quite steep. I don’t want to criticize, I’m sure it’s a great course and content, just relative to other online courses that go for 30-40h with high quality content and are at €11.99 (on Udemy), this compares quite expensively. I wonder if you wouldn’t be able to reach a much wider audience at a lower price point and thereby take up total sales quite a lot. From what I remember there weren’t really comparable courses on Udemy, so you’d have a good standing.


    1. Excellent feedback David, thank you!

      I get your point, but I prefer dealing with motivated students directly on my own website, as opposed to going onto Udemy and let them control the price, my content, set terms and conditions and undervalue my course.

      I’ve set a premium price here, and that’s not only because of the number of videos or the value of each lesson – but also for the reason that I’m available for 24/7/365/forever support for students, and that’s priceless. This 1-to-1 collaboration is what makes me stand out and Udemy is not suitable for that.

      Hope this makes sense!

  7. Thank you so much for this lesson, it is much appreciated 🙂

    1. Great!

  8. Hi
    Thank you for this post it’s very informative. I wonder if you might know the conditions when single product, product title is not included in the product summary loop.
    When my product page is built the Product Title doesn’t appear. If I use the Inspect function in MS Edge it’s missing. If I insert the reference manually I get a title but it’s just test editing of a live page.
    I’m tying to figure out why it’s not being displayed and wondered if you might okn is?

    1. Hey Simon, this is a little off topic, but generally speaking when something is not working: disable all plugins but WooCommerce and switch theme to 2020. If that fixes it, then it means a plugin or your custom theme is causing the issue. Hope this helps

  9. Hi I am working on the parent theme. So I add the code snuppet as a new plugin. But I lost it after update of woocommercee. So where to add the code snippet. Because i lost it in update.

    1. Hi Rakesh, thanks for your comment! You should definitely create a child theme, but if you can’t do that for now, a WooCommerce plugin update cannot override another custom plugin, so there is something wrong there 🙂

  10. I learn this lesson at office so i have to watch the video in mute , how and i found the subtitle of the video.

    1. Hi Jun, thanks for your comment! This lesson is PowerPoint-based, hence it has no subtitles as most of the text is already written on the slides. Sorry!

  11. I tried using that “Code Snippet” plug in but nothing happens. I copy and pasted your code in there but all the fields are still there. I tried that method because am brand new to all this and don’t know what the heck to do with filezilla and hoped that the plug in would work. Why wouldn’t the plug in work?

    1. Hi there! What code did you use?

  12. Hey and thank you so much,
    how do we display a checkbox on the My Account page, at the bottom of the registration form


  13. Hi Rodolfo, i don’t have any woocommerce folder in the child-theme folder, but i have it in the parent theme folder.
    How can i have it in the child-theme folder?
    I’m trying to customize my store 🙂


    1. If you have a /woocommerce folder in your parent theme, it’s usually not a good theme. How many files are in it?

  14. Hi, The lessons has subtitutles? In this video I don’t know how to activate them

    1. Hi Jesus, thanks for your comment! No, this does not as it’s a PowerPoint Presentation and most content is already written on each slide. Hope this helps!

  15. Hi Rodolfo,
    Thank you so much for the lesson. I have some experience in code basically in hand-coding with HTML, CSS and Javascript. However, I accept doing a project with WordPress where they use Elementor and Woocomerce. The project has many things already done and they were using in Customizing, Additional CSS. I have never used child themes but I understand how better they are but I don’t know if is possible to use at the same time Elementor and Child Theme? and if changing for child theme I will lose all that has been done on Elementor?
    Do you have any answer for that?

    Thank you anyway and great video.

    1. Hi Juliana! Elementor and theme are independent from each other, so nothing will happen to your website once you switch theme. If something does happen (rarely), you can always reactivate the old theme and restore all you had. Hope this helps!

  16. Great tutorial and re-cap!

    I originally entered all my CSS in the Child Theme’s style.css file, but my theme’s support told me to remove it from there and place it all in the WP Customizer. I really can’t remember the reason why. When edit the CSS, I then copy everything from my Customizer to a txt file and save to my external drive as a safeguard.

    1. Thank you for your feedback Nilla!

      my theme’s support told me to remove it from there and place it all in the WP Customizer. I really can’t remember the reason why.

      In relation to this, that’s because your child theme is not setup properly and doesn’t take priority over your parent theme CSS

  17. Hi Rodolfo… So glad I found you.

    And As i’m on this subject may I ask another question that is also related to your answer above in regard to “Vimeo”

    Question: As I upload all my videos to my site, which can be anything from 5mb to 60mb … Is this the norm or is this what Vimeo is all about? Should I be uploading my videos to ‘Vimeo” rather than directly to my site?…
    Does this mean I can have the image of the video on my site and it links to Vimeo?… But then I’d fear that the link would cause people to leave my site and go to vimeo?… I know this is what happens If i link a youtube video… The video takes visitors away to youtube…

    Love this site and thank you so much in advance.

    P.S. Is it possible to hire you for a one on one through skype to help me with a woo-commerce where I need to create an add-on option… Where after a customer selects a product, they then have extras selected by tick boxes that add and total the amount?

    Looking froward to you response Rodolfo

    1. Hey Anto 🙂

      1) It’s better to store videos on Vimeo/YouTube and embed them into WordPress. You have lots of storage there and also users won’t leave WordPress as they can play the video there

      2) I don’t do 1-2-1 Skype calls but I provide 365 days of WooCommerce Mentorship via email: In regard to your task, check this out:

      Hope this helps!

  18. Hey there,

    I get a message saying ‘sorry because of its privacy settings, this video cannot be played here.’.

    Is there anything that can be done to let the video play?


    1. Hi John, sorry about that! It works on my end, and you’re the first one to report this error. My Vimeo settings allow to embed the video only on this site domain. I also noticed half of the worldwide internet was down due to a Cloudflare issue, maybe Vimeo got affected too. Let me know if it’s back to normal now

  19. Hi Rodolfo,
    Thanks for sharing al this! It made a lot much clearer than I knew. I don’t want to use much plugins for each function. You showing this will achieve this. Now I want to at a brand name in between title and price. I looked at your code for the secure payment image but I get stuck trying to add the attribute brand. There is some php knowledge necessary. It is probably not much but…
    What would you suggest?


    1. Hey Marco, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. Thanks a lot for your understanding!

  20. Hi Rudolfo;
    Thanks for the lesson I just followed. I found a snippet to hide the SKU from you and the possibility to hide the category by meta. However, I need to hide the category but keep the other information like SKU.
    Is there a solution just to hide the category information on the single product page?
    Thanks for your help in advance, kind regards

    1. Thank you 🙂 Unfortunately this is custom work and I cannot provide a complementary solution here via the comments. Thanks a lot for your understanding! ~R

  21. I have followed the tutorial. Twice. Then tried things offline… No success. The snippets are not having any effects on my single product page.

    I have a child theme for the main theme (Merchandiser). It is called Merchandiser-Child. The structure is identical to you tutorials. ie empty function.php file and a style.css file and other else. I am only adding snippets to the function.php file and nothing else. This is then uploaded with ftp.

    I pasted your code into functions.php for showing the word “Test”, but nothing shows up on the product page. What am I doing wrong?.
    For your info, I also tried to understand the underlying calls in woocommer for this theme
    (Looking at the code in the main theme it calls: WooCommerce/single_product.php. In this file it, the php then has a simple call to either a single_Product_classic.php or a single_product_half.php.

    Examining the code of the (single_product_classic, I see that it has the follow actions removed an added (although of course I am NOT touching this code!):

        remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
        remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
        add_action( 'woocommerce_before_single_product_summary_sale_flash', 'woocommerce_show_product_sale_flash', 10 );
        add_action( 'woocommerce_before_single_product_summary_product_images', 'woocommerce_show_product_images', 20 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50 );
        add_action( 'woocommerce_single_product_summary_single_title', 'woocommerce_template_single_title', 5 );
        add_action( 'woocommerce_single_product_summary_single_rating', 'woocommerce_template_single_rating', 10 );
        add_action( 'woocommerce_single_product_summary_single_price', 'woocommerce_template_single_price', 10 );
        add_action( 'woocommerce_single_product_summary_single_excerpt', 'woocommerce_template_single_excerpt', 20 );
        add_action( 'woocommerce_single_product_summary_single_add_to_cart', 'woocommerce_template_single_add_to_cart', 30 );
        add_action( 'woocommerce_single_product_summary_single_meta', 'woocommerce_template_single_meta', 40 );
        add_action( 'woocommerce_single_product_summary_single_sharing', 'woocommerce_template_single_sharing', 50 );
        remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
        remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
        remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
        add_action( 'woocommerce_after_single_product_summary_data_tabs', 'woocommerce_output_product_data_tabs', 10 );
        //custom actions
        add_action( 'woocommerce_before_main_content_breadcrumb', 'woocommerce_breadcrumb', 20, 0 );
        add_action( 'woocommerce_product_summary_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
    1. Hey Marco, thanks so much for your comment! As you can see your theme heavily overrides WooCommerce hooks by removing them and adding its own ones. You could try hooking into “woocommerce_single_product_summary_single_price” for example, which is a hook added by your theme.

      My snippets won’t work for your custom theme as I use only default WooCommerce hooks. Therefore you could try using one of those offered by your theme, or switch to a more “WooCommerce-friendly” theme that has no overrides 🙂

      Hope this helps and let me know how it goes!

Questions? Feedback? Support? Leave your comment now!

If you are writing code, please wrap it between: [php]code_here[/php]

Your email address will not be published. Required fields are marked *