Reputation: 27
I would like to display a custom field generated with ACF under the product title in WooCommerce widget for recently viewed products.
I already achieved to echo the custom field in the widget but it shows depending on the action hook either above the product picture with woocommerce_widget_product_item_start
or under the price and delivery info with woocommerce_widget_product_item_end
.
I used the following code snippet in my functions.php
add_action( 'woocommerce_widget_product_item_start', 'acf_field_woo', 6 );
global $product;
function acf_field_woo() {
echo '<p class="wc-subtitle">' . get_field('subtitle') . '<br /></p>';
}
With this it's shown above the product image in the widget. So far so good, but
how can I achieve to show it directly under the product title in the widget?
Upvotes: 0
Views: 1280
Reputation: 29614
To display your ACF field directly below the product title, you will need to edit the template file. As can be found in templates/content-widget-product.php
yourtheme/woocommerce/content-widget-product.php
So replace
<a href="<?php echo esc_url( $product->get_permalink() ); ?>">
<?php echo $product->get_image(); // PHPCS:Ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<span class="product-title"><?php echo wp_kses_post( $product->get_name() ); ?></span>
</a>
With
<a href="<?php echo esc_url( $product->get_permalink() ); ?>">
<?php echo $product->get_image(); // PHPCS:Ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<span class="product-title"><?php echo wp_kses_post( $product->get_name() ); ?></span>
<?php
$subtitle = get_field( "subtitle" );
if( $subtitle ) {
echo '<p class="wc-subtitle">' . $subtitle . '</p>';
}
?>
</a>
Upvotes: 1