Добавление MSRP на страницу продукта для WooCommerce - PullRequest
0 голосов
/ 04 августа 2020

Сейчас я пытаюсь добавить новое текстовое поле на страницу своего продукта. Я хочу, чтобы рядом с продуктом отображалась рекомендованная розничная цена моих продуктов. Как на изображении ниже. Рекомендуемая производителем розничная цена должна быть там, где находится красная линия.

Вот изображение

Я провел довольно много исследований по topi c. Есть несколько плагинов, которые решат эту проблему. Однако у большинства из них либо плохие отзывы, либо им платят. Я успешно добавил мета-поле для MSRP. Однако, когда я добавляю цену в это поле, она вообще не отображается на странице продукта.

function bbloomer_display_RRP() {
global $product;
if ( $product->get_type() <> 'variable' && $rrp = get_post_meta( $product->get_id(), 'rrp', true ) ) 
  {
    echo '<div class="woocommerce_rrp">';
    _e( 'RRP: ', 'woocommerce' );
    echo '<span>' . wc_price( $rrp ) . '</span>';
    echo '</div>';
  }
 }

Приведенный выше код должен отображать цену MSRP на странице продукта. Однако это не

С уважением,

Luu c

1 Ответ

1 голос
/ 04 августа 2020

Вы добавляете bbloomer_display_RRP к любому хуку? Сама по себе функция ничего не сделает. Основываясь на вашем снимке экрана, я бы добавил его в ловушку woocommerce_template_single_price с приоритетом 5, чтобы он появлялся непосредственно перед появлением цены.

/**
 * Add RRP Field to product data metabox
 */
function kia_add_RRP_to_products() {          
    woocommerce_wp_text_input( array( 
        'id' => 'rrp', 
        'class' => 'short wc_input_price', 
        'label' => __( 'RRP', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',
        'data_type' => 'price', 
    ));      
}
add_action( 'woocommerce_product_options_pricing', 'kia_add_RRP_to_products' );   

/**
 * Process, verify and save product data
 *
 * @param  WC_Product  $product
 */
function kia_save_RRP( $product ) {
    if ( isset( $_POST['rrp'] ) ) {
        $rrp = wc_format_decimal( wc_clean( wp_unslash( $_POST['rrp'] ) ) );
        $product->update_meta_data( 'rrp', $rrp );
    } else {
        $product->delete_meta_data( 'rrp' );
    }
}
add_action( 'woocommerce_admin_process_product_object', 'kia_save_RRP' );

/**
 * Display RRP on front-end in product summary
 */
function kia_display_RRP() {
    global $product;

    $rrp = '10';

    if ( ! $product->is_type( 'variable' ) ) {
        
        $rrp = $product->get_meta( 'rrp', true );

        if ( $rrp ) {
            echo '<div class="woocommerce_rrp">';
            printf( __( 'RRP: %s', 'your-textdomain' ), wc_price( $rrp ) );
            echo '</div>';
        }
    }
}
add_action( 'woocommerce_single_product_summary', 'kia_display_RRP', 5 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...