WooCommerce snippets

How to get the category name of a product

$term_list = wp_get_post_terms(get_the_ID(), 'product_cat');
echo $term_list[0]->name;

How to get the category url of a product

$term_list = wp_get_post_terms(get_the_ID(), 'product_cat');
echo get_term_link( $term_list[0]->slug, 'product_cat' );

How to get the tag name of a product

$term_list = wp_get_post_terms(get_the_ID(), 'product_tag');
echo $term_list[0]->name;

How to remove iCanLocalize prompts from WooCommerce admin

Add this in your functions.php

define("ICL_DONT_PROMOTE", true);

How to automatically add feature image to existing product, if image filename is equal to product’s sku

// When an image is added in the library, set feature image to existing product if filename equals sku
function add_image_to_product_if_sku_is_equal_to_filename($attachmentID) {
    if (!class_exists('WC_Product'))
        return; // if no WooCommerce do nothing
        
    // an attachment was just saved, first of all get the file name
    $src = wp_get_attachment_image_src($attachmentID, 'full');
    $filename = pathinfo($src[0], PATHINFO_FILENAME);

    // now let's see if exits a product with the sku that match filename
    $args = array(
        'meta_key' => '_sku',
        'meta_value' => $filename,
        'post_type' => 'product',
        'posts_per_page' => '1' // assuming sku is unique get only one post
    );
    $prods = get_posts($args);
    if (!empty($prods)) {

        // ok we have a match, exists a product having sku that match filename
        $product = array_pop($prods);

        // set the thumbnail for the product
        set_post_thumbnail($product, $attachmentID);

        // now "attach" the post to the product setting 'post_parent'
        $attachment = get_post($attachmentID);
        $attachment->post_parent = $product->ID;
        wp_update_post($attachment);
    }
}

add_action('add_attachment', 'add_image_to_product_if_sku_is_equal_to_filename');

Return to shop button

By default WooCommerce cart and checkout page does not have a ‘Return to shop’ button. The HTML code to enter it is:

<a class="button wc-backward" href="<?php echo apply_filters('woocommerce_return_to_shop_redirect', get_permalink(wc_get_page_id('shop'))); ?>"><?php _e('Return To Shop', 'woocommerce') ?></a>

And here are the files you need to edit:

woocommerce/cart/cart.php
woocommerce/checkout/review-order.php

How to get the current logged in user’s role

function get_user_role() {
    global $current_user;
    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);
    return $user_role;
}

Post A Comment

Anti-Spam Quiz: