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));
Related
So I'm trying to get a variable to work within an echo do shortcode, however I can't seem to get it working. The goal is to be able to have the client select the brand the backend of the site using ACF instead of hard coding the brand selection.
Here is what I currently have:
<?php $brand_one_ids = get_field( 'brand_one' ); ?>
<?php echo do_shortcode( '[products limit="8" columns="4" class="brand,' . $brand_one_ids . '"]'); ?>
Any advice and fixes would be greatly appreciated!
Nobody could help you on this as you didn't explain in your question, that you:
Have created a product custom taxonomy "Brand".
Are using this answer code to make it work on Woocommerce [products] shortcode
That you want to display those "Brand" products in your home page
Your problem is just a settings problem in ACF. You need to enable those custom fields in your home page, this way:
Then you will get a custom metabox in your home page, with your "Brands" custom fields:
Once filled and saved, this time using the following code on your home, it will work:
<?php if( ! empty( get_field( 'brand_one' ) ) )
echo do_shortcode( '[products limit="8" columns="4" class="brand,' . get_field( 'brand_one' ) . '"]'); ?>
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
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/
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 ) ?>
I'm using WooCommerce widgets to add the category list for my products in the sidebar of my website. Currently the categories are listed as text items. I would like to display the thumbnail image for each category (beside the text).
I have used code below, but it shows the category thumbnail in the centre of the page where the products are listed:
add_action( 'woocommerce_archive_description', 'woocommerce_category_image', 2 );
function woocommerce_category_image() {
global $wp_query;
$cat = $wp_query->get_queried_object();
$thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
if ( $image ) {
echo '<img src="' . $image . '" alt="" />';
}
}
I would like this thumbnails in the sidebar beside the text items.
Can anybody help me figure out what I'm missing to achieve this?
Thank you in advance!
You have picked this code snippet at wooThemes: WC Display category image on category archive
You are using woocommerce_archive_description that is displaying this category image on archive-product.php template (line 48).
Sorry but this will not work for a widget especially using this hook.
Now you have 3 options:
Creating your own widget and coding it with php (the hardest).
Using a free plugin made for that: WooCommerce - Category widget (the easiest)
Or in between, picking some code and ideas in the plugin, to make your own…