Как вывести произвольные поля ACF в вариациях продукта WooCommerce?

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Чтобы вывести произвольные поля 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' );
}
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии