I have created a custom function to display 3 custom fields (ACF) and the product price in the WooCommerce Archive/Shop page.
My Custom fields are showing correctly, but the WooCommerce price does not. How can I output the product price within this function?
add_action( 'woocommerce_after_shop_loop_item', 'acf_template_loop_product_meta', 20 );
function acf_template_loop_product_meta() {
global $product;
if ( $brand = get_field('brand', $product->get_id()) ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $brand . '</p>';
}
if ( $designer = get_field('designer', $product->get_id()) ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $designer . '</p>';
}
if ( $model = get_field('model', $product->get_id()) ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $model . '</p>';
}
if ( $price = $product->get_price(); ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $price . '</p>';
}
}
CodePudding user response:
Here is the solution if anyone is interested:
add_action( 'woocommerce_after_shop_loop_item', 'acf_template_loop_product_meta', 20 );
function acf_template_loop_product_meta() {
global $product;
if ( $brand = get_field('brand', $product->get_id()) ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $brand . '</p>';
}
if ( $designer = get_field('designer', $product->get_id()) ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $designer . '</p>';
}
if ( $model = get_field('model', $product->get_id()) ) {
echo '<p><strong>'. __("  ") . '</strong> ' . $model . '</p>';
}
if ( $price = $product->get_price() ) {
echo '<p><strong>'. __("  ") . '</strong> ' . ฿ $price . '</p>';
}
}