Чтобы вывести произвольные поля ACF в вариациях продукта WooCommerce, нужно добавить этот код в ваш «function.php»
/* Adds RRP or PPP* price after each product price throughout the shop for user != Customer & Guest
.Not displayed in cart as it's not per var and we don't need to.
PPP = Price Per Pair (for product composite/bundle display)
================================================== */
// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields() {
global $woocommerce, $post;
// Text Field creation
woocommerce_wp_text_input(
array(
'id' => '_rrpprice',
'label' => __( 'RRP price ($)', 'woocommerce' ),
'placeholder' => 'e.g. 499',
'desc_tip' => 'true',
'description' => __( 'Enter the RRP .', 'woocommerce' )
)
);
woocommerce_wp_text_input(
array(
'id' => '_pppprice',
'label' => __( 'Price Per Pair*', 'woocommerce' ),
'placeholder' => 'e.g. 122',
'desc_tip' => 'true',
'description' => __( 'Enter the PPP (Price Per Pair) if Bundle/composite .', 'woocommerce' )
)
);
}
function woo_add_custom_general_fields_save( $post_id ){
// TextField save
$woocommerce_rrpprice = $_POST['_rrpprice'];
update_post_meta( $post_id, '_rrpprice', esc_html( $woocommerce_rrpprice ) );
if( !empty( $woocommerce_rrpprice ) )
// TextField save
$woocommerce_pppprice = $_POST['_pppprice'];
if( !empty( $woocommerce_pppprice ) )
update_post_meta( $post_id, '_pppprice', esc_html( $woocommerce_pppprice ) );
}
// Display Custom Field Value
if ( is_user_logged_in() && !(current_user_can('customer'))) {
function sv_change_product_price_display( $price ) {
$product = wc_get_product( get_the_ID() );
$priceRRP = get_post_meta( get_the_ID(), '_rrpprice', true );
$pricePPP = get_post_meta( get_the_ID(), '_pppprice', true );
if ( (is_shop() || is_product()) && !is_cart() ) { //double belt check
if($product->is_type( 'variable' )){
$price .= ' + GST<br /><span class="rrp-price">RRP: $' . $priceRRP .'</span>';
}else{
$price = ' <span class="rrp-price"><b>$' . $pricePPP .' + GST </b></span>' . '<br /><span class="rrp-price">RRP: $' . $priceRRP .'</span>';
}
}
return $price;
}
add_filter( 'woocommerce_get_price_html', 'sv_change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'sv_change_product_price_display' );
}