Create WooCommerce product table with add-to-cart buttons

/**
 * Shortcode: WooCommerce product table with add-to-cart buttons.
 *
 * @see https://wpcodebook.com/snippets/create-woocommerce-product-table-with-add-to-cart-buttons/
 * @see https://github.com/woocommerce/woocommerce/wiki/wc_get_products-and-WC_Product_Query
 */
add_shortcode( 'wpcodebook_product_table', function () {

	$rows = '';

	foreach ( wc_get_products( array( 'limit' => -1 ) ) as $product ) {

		$rows .= sprintf( '<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
			$product->get_image( 'thumbnail' ),
			$product->get_name(),
			$product->get_price_html(),
			sprintf( '<a class="button" href="%s">%s</a>', 
				$product->add_to_cart_url(), $product->add_to_cart_text() ) 
		);

	}

	return '<table>' . $rows . '</table>';

} );

Shortcode usage:

[wpcodebook_product_table]

Result:

WooCommerce product list

Leave a Comment