Hello WooCommerce Customizers!
Today is episode #18ย of my “18 snippets in 18 days” challenge… yes, I’ve made it! In the last 18 days I’ve added a good amount of WooCommerce code tutorials and I hope you appreciate the effort!
If you haven’t shared on social media or left a comment yet, it is time to spread the word and share the WooLove right now ๐
Today’s goal is quite atypical, but I love that. A client needed to see on the frontend, almost in real time, who bought which product and their names. The sell Yoga classes via WooCommerce and simply needed to make sure who’s on what class!
WooCommerce 3.0+ Snippet: Display Sales to Admin @ FrontEnd Loop
/** * @snippet Display Sales to Admin @ FrontEnd * @how-to Get CustomizeWoo.com FREE * @sourcecode https://businessbloomer.com/?p=19967 * @author Rodolfo Melogli * @testedwith WooCommerce 3.2.5 */ function bbloomer_show_sales_to_admin_325() { global $product, $post; if ( current_user_can( 'administrator' ) ) { echo '<div class="sales-admin"><b>SALES (admin-only):</b><ol>'; $orders = get_posts( array( 'post_type' => 'shop_order', 'post_status' => 'wc-completed' ) ); foreach ($orders as $order) { $order = new WC_Order( $order->ID ); $items = $order->get_items(); foreach( $items as $item ) { $product_id = $item['product_id']; if ( $post->ID == $product_id ) { echo '<li>' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name() . '</li>'; } } } echo '</ol></div>'; } } add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_show_sales_to_admin_325', 10 );
WooCommerce before 3.0 Snippet: Display Sales to Admin @ FrontEnd Loop
/** * @snippet Display Sales to Admin @ FrontEnd * @how-to Get CustomizeWoo.com FREE * @sourcecode https://businessbloomer.com/?p=19967 * @author Rodolfo Melogli * @testedwith WooCommerce 2.5.2 */ function bbloomer_show_sales_to_admin() { global $product, $post; if ( current_user_can( 'administrator' ) ) { echo '<div class="sales-admin"><b>SALES (admin-only):</b><ol>'; $orders = get_posts( array( 'post_type' => 'shop_order', 'post_status' => 'wc-completed' ) ); foreach ($orders as $order) { $order = new WC_Order($order->ID); $items = $order->get_items(); foreach($items as $item) { $product_id = $item['product_id']; if ($post->ID == $product_id) { echo '<li>' . $order->billing_first_name . ' ' . $order->billing_last_name . '</li>'; } } } echo '</ol></div>'; } } add_action('woocommerce_after_shop_loop_item','bbloomer_show_sales_to_admin', 10);
And a bit of CSS customization:
.sales-admin { text-align:left; margin: 5% auto; padding: 0 5%; border: 1px dashed red; font-size: 14px; }
How would this work where you have created a custom loop for the products?
I guess it’s just a matter of changing the hook so it displays on custom loops as well
this snippet is not working on woocommerce 3.2.4
Abdul, thanks so much for your comment! You’re 100% right ๐ I just posted a new update for the latest version of Woo.