Add text in this PHP code? - php

function woocommerce_template_product_description() {
wc_get_template( 'single-product/tabs/description.php' );
}
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_product_description', 20 );
This code prints a product description, but I'd like to add the text "Description:" before the description itself without having it on a separate line. How do I go about that? I am a total beginner when it comes to coding. Thanks!

In WordPress/WooCommerce Product are nothing but a Post. So the the product
description is treated as the_content of a post.
If you just want to add custom text/content before the Product Description then just use the_content filter.
Here is the code.
function theme_slug_filter_the_content($content)
{
//Only for single product page.
if (is_product())
{
$prepend = 'Description';
$content = $prepend . $content;
}
return $content;
}
add_filter('the_content', 'theme_slug_filter_the_content', 9); // <-- Choose some priority <
This code goes in function.php file of your active child theme (or theme) or also in any plugin file.
The code is tested and fully functional.
Reference
the_content
is_product

You have to locate the template file and edit the template file, so that it renders the desired output.

This loads a template file only
You need to edit that specific file "single-product/tabs/description.php"
and add a echo there.

Case-1 : Add "Description" in tab
Path : templates/single-product/tabs/description.php
<?php echo "<b>Description</b>"; the_content(); ?>
Case-2 : Add "Description" in Short description area
Path : templates/single-product/short-description.php
<?php echo "<b>Description</b>"; ?>
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>

Related

Displaying main product image from Woocommerce with a custom plugin

Hi I'm trying to create a custom plugin that will display the main product image from Woocommerce plugin. I want to use shortcode. How do I go about doing this? This is what I had and it didn't work. I've also found different suggestions. I will share everything below
add_shortcode( 'product_image', 'bbloomer_product_image_shortcode' );
function bbloomer_product_reviews_shortcode() {
return woocommerce_get_product_thumbnail();
}
<?php
$gallery_shortcode = '[gallery id="' .intval($post->$post_parent).'"]';
print apply_filters('the_content', $gallery_shortcode);
?>
These are what I found/were suggested to me before
try this:
$featured_image = wp_get_attachment_url( get_post_thumbnail_id($product_id));

How to remove the default meta title from functions.php in Wordpress?

Ok, so I have added my own title in the header.php
<title>
<?php
if (!(is_front_page())) {
wp_title('', true,''); ?> (<?php the_time( 'Y/m/d' ); ?>)-
<?php }
echo get_bloginfo( 'name' ); ?>
</title>
It works great.
The problem is that when I click on View Source, I see two title codes.
First one is my title that I manually added to header.php
And the second one is the default Wordpress title.
My question is, where do I need to modify (probably in the functions.php?) to remove the default Wordpress title?
Might be able to use this in your functions.php based on: wp-includes/default-filters.php
remove_action( 'wp_head', '_wp_render_title_tag' );
UPDATE
Based on your theme I recommend you remove your custom title from the header, remove the above remove_action i previously suggested and use the below solution in your functions.php. this will hook into the existing theme title and modify its value using your custom title code:
add_filter('wp_title', function($default_title){
$title = '';
if (!is_front_page()) {
$title .= wp_title('', false,'') .' '. get_the_time( 'Y/m/d' ) . '- ';
}
$title .= get_bloginfo( 'name' );
return $title;
});
Here's the working sulution. Just paste the below code to your functions.php:
remove_action( 'wp_head', '_wp_render_title_tag', 1 );

Adding an image page banner to shop page

I am using WordPress 4.9.6.
I have set the shop page to be the home-page.
How do I add a page banner to the shop page. I would like to add it just above the breadcrumb trail.
I have tried adding this to the following page archive-product.php
if (is_shop()) {
$args = array('taxonomy' => 'product_cat');
$product_categories = get_categories( $args );
$term_id = $product_categories[0]->term_id;
$content = get_term_meta($term_id, 'cat_meta');
if(isset($content[0]['cat_header'])){
echo do_shortcode($content[0]['cat_header']);
}
}
Unfortunately, not able to add any image to the page.
You can achieve using 2 methods.
1) Add your static image directly at the beginning of archive-product.php
echo "<img src='{YOUR_IMAGE_PATH}'>";
2) Add filter in your theme's functions.php file.
add_action ('woocommerce_archive_description' , 'shop_banner',99);
function shop_banner() {
echo '<img src="{YOUR_IMAGE_PATH}" >';
}
I'm not so sure if I understand exactly what you want. But this is what I understand so far.
If you want to display an Static image banner above the breadcrumbs in your Shop Page.
You could use the woocommerce_before_main_content action.
function BannerShop(){
if(is_shop()){
echo '<img src="https://localhost/demosite/wp-content/uploads/2015/06/512x356.png" >';
}
}
add_action( 'woocommerce_before_main_content', 'BannerShop', 10 );
Here i show the before and after. BTW I don't know what theme are you using so it may be displayed different.
Before
https://i.stack.imgur.com/Mv2YK.jpg
After https://i.stack.imgur.com/nTfCa.jpg

Where to add content and customize page title in woocommerce

I am trying to add content after the page title and customize the style of page where all products are listed in woocommerce, but I have no idea where is the file that I can copy to my custom theme, I have been able to customize the products in the loop but don't know where to customize this?
On inspect element it is the h1 element with a class page-title:
<h1 class="page-title">Nettbutikk</h1>
woocommerce/templates/single-product/title.php is the file you are looking for. You can copy single-product/title.php to yourchildthemefolder/woocommerce/single-product/title.php
Here is a link to their github of that file so you can see it for yourself. Let me know if this helped! :)
https://github.com/woocommerce/woocommerce/blob/master/templates/single-product/title.php
To edit the woocommerce product list page, the file woocommerce/archive-product.php needs to be edited.
Woocommerce Listing products page add content after product title using given hook.
add_action( 'woocommerce_after_shop_loop_item_title', 'after_shop_loop_item_title', 1 );
Add this code in functions.php of current active theme.
add_action( 'woocommerce_after_shop_loop_item_title', 'after_shop_loop_item_title', 1 );
function after_shop_loop_item_title() {
global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
$text = "<p> (";
foreach ($terms as $term) {
$text .= $term->name;
}
$text .= ") </p>";
echo $text;
}
Reference by: https://businessbloomer.com/woocommerce-visual-hook-guide-archiveshopcat-page/

Removing some text in main title on product category archives pages

On my WooCommerce web shop, I would like to remove Archive of : from main title on product category archives pages.
Here is a screenshot:
I have tried to use this code based on this answer,
But it doesn’t work:
function changing_category_archive_page_title( $page_title ) {
if(is_product_category()) {
$title_arr = explode(' :', $page_title);
$new_title = $title_arr[2];
if(!empty($new_title)) echo $new_title;
else echo $page_title;
}
}
add_filter( 'woocommerce_page_title', 'changing_category_archive_page_title', 10, 1 );
How can I do to remove Archive of : from title?
Thanks.
It seem that this 'Archive of : ' text is a customization of your theme, as it doesn't exist in classic WooCommerce. So in this case, it's normal that the code you are using doesn't work.
Without any guaranty, as I can't test it my self, you should try to use the WordPress gettex() function, as I think that this is an addition to main title, as some themes use to do:
add_filter( 'gettext', 'removing_specific_text_in_categories_page_titles', 10, 2 );
function removing_specific_text_in_categories_page_titles( $translated_text, $untranslated_text )
{
if ( 'Archive of :' == $untranslated_text ) {
$translated_text = '';
}
return $translated_text;
}
This code goes in function.php file of your active child theme (or theme) or also in any plugin file.

Categories