Back to Blog

WooCommerce Custom Product Loop and Product Object

Create custom WooCommerce loop and get product info from $product object

Dec 19, 2022 Updated: Dec 19, 2022

The Custom WooCommerce Product Loop

$args = ['post_type'=> 'product', 'fields'=> 'ids', 'posts_per_page'=> 9];
$prod_ids = get_posts($args);

foreach ($prod_ids as $key => $prod_id){
    // get product object from product id
    $product = wc_get_product($prod_id);
    // now get information from product object
    $product->get_name();
    $product->get_price();
    get_permalink( $prod_id );
    // etc..
}

WooCommerce Product Object

// general information
$product->get_id();
$product->get_name();
$product->get_slug();
$product->get_type();
$product->get_date_created();
$product->get_date_modified();
$product->get_status();
$product->get_featured();
$product->get_catalog_visibility();
$product->get_description();
$product->get_short_description();
$product->get_sku();
$product->get_menu_order();
$product->get_virtual();
get_permalink( $product->get_id() );

// image
$product->get_image();
$product->get_image('full',  ['class'=> 'attachment-full size-full card-img-top'], 1);
$product->get_image_id();
$product->get_gallery_image_ids();

// price related information
$product->get_price();
$product->get_regular_price();
$product->get_sale_price();
$product->get_date_on_sale_from();
$product->get_date_on_sale_to();
$product->get_total_sales();

// reviews
$product->get_reviews_allowed();
$product->get_rating_counts();
$product->get_average_rating();
$product->get_review_count();

// taxonomies
$product->get_categories();
$product->get_category_ids();
$product->get_tag_ids();

// tax, shipping and stock information
$product->get_tax_status();
$product->get_tax_class();
$product->get_manage_stock();
$product->get_stock_quantity();
$product->get_stock_status();
$product->get_backorders();
$product->get_sold_individually();
$product->get_purchase_note();
$product->get_shipping_class_id();

// dimention information
$product->get_weight();
$product->get_length();
$product->get_width();
$product->get_height();
$product->get_dimensions();

// download information
$product->get_downloads();
$product->get_download_expiry();
$product->get_downloadable();
$product->get_download_limit();

// linked products
$product->get_upsell_ids();
$product->get_cross_sell_ids();
$product->get_parent_id();

// variation and attributes
$product->get_children(); // get variations
$product->get_attributes();
$product->get_default_attributes();
$product->get_attribute('attributeid'); // get specific attribute value

Get Product Object from Order ID

$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {  
    $product = $item->get_product();
    $product->get_type();
    $product->get_name();
    // etc.
}

Get Product Object from Cart

$cart = WC()->cart->get_cart();
foreach( $cart as $cart_item_key => $cart_item ){
    $product = $cart_item['data'];
    $product->get_type();
    $product->get_name();
    // etc.
}

Get Product Object from $post

$product = wc_get_product( $post );
$product->get_type();
$product->get_name();
// etc.
Contact

Got A Question For Me?

Feel free to ask anything directly on call or fill the form and I will contact back within few hours.