Поддержка WooCommerce Как в этом коде добавить 3-ю цену, с функцией?

  • Есть код в function, там две цены, как еще добавить третью? Оптом

      add_action( 'woocommerce_single_product_summary', 'art_get_text_field_before_add_card' );
    function art_get_text_field_before_add_card() {
    global $post, $product;
    $text_field     = get_post_meta( $post->ID, '_text_field', true );  
    if ( $text_field ) {
        ?>
        <span class="text-field">
            <strong>Мелкий опт: </strong>
            <?php echo $text_field; ?> 
        </span>
    <?php }
    }
    function filter_woocommerce_get_price_html( $price, $_this ) {
        $text_field = get_post_meta( $post->ID, '_text_field', true );
        ob_start();
        if ( $text_field ) {
            ?>
            <span class="text-field">
                    <strong>Розница: </strong>
                <?php echo $text_field; ?>
                </span>
            <?php
        }
        $text = ob_get_clean();
        return 'Розница: ' . $price . ' / ' . $text;
    }
    add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );

    А так же как сделать так чтобы в зависимости от суммы бралась цена из допустим Мелкого опта, к примеру если сумма в корзине больше 30 тыс, то цена товара береться с пункта Мелкий опт, от 50 тыс, то Опт.

Просмотр 1 ответа (всего 1)
  • Автор elmurza

    (@elmurza)

    Так, удалось сделать как смог, осталось только сделать чтобы они автоматически рассчитывались при сумме в корзине

    /* Выводим поле аренды при создании товара */
    add_action( 'woocommerce_product_options_general_product_data', 'art_woo_add_custom_fields' );
    
    function art_woo_add_custom_fields() {
    global $product, $post;
    echo '<div class="options_group">';
    
        woocommerce_wp_text_input( array(
        'id'                => '_text_field',
        'label'             => __( 'Мелкий опт (₽)', 'woocommerce' ),
        'placeholder'       => 'Мелкооптовая цена',
        'desc_tip'          => 'true',
        'custom_attributes' => array( 'required' => 'required' ),
        'description'       => __( 'Мелкооптовая цена',
        'woocommerce' ),
        
    ) );
        woocommerce_wp_text_input( array(
        'id'                => '_opt',
        'label'             => __( 'Опт (₽)', 'woocommerce' ),
        'placeholder'       => 'Оптовая цена',
        'desc_tip'          => 'true',
        'custom_attributes' => array( 'required' => 'required' ),
        'description'       => __( 'Оптовая цена',
        'woocommerce' ),
        
    ) );
    echo '</div>';
    }
    
    /* Сохраняем значение аренды в базе данных */
    add_action( 'woocommerce_process_product_meta', 'art_woo_custom_fields_save', 10 );
    
    function art_woo_custom_fields_save( $post_id ) {
    
    $woocommerce_text_field = $_POST['_text_field'];
    if ( $woocommerce_text_field ) {
    update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );
    }
    $woocommerce_opt = $_POST['_opt'];
    if ( $woocommerce_opt ) {
    update_post_meta( $post_id, '_opt', esc_attr( $woocommerce_opt ) );
    }
    }
    
    /* Выводим аренду в карточке товара */
    add_action( 'woocommerce_single_product_summary', 'art_get_text_field_before_add_card', 'art_get_opt_before_add_card');
    function art_get_text_field_before_add_card() {
    global $post, $product;
    $text_field    = get_post_meta( $post->ID, '_text_field' , true );  
    if ( $text_field ) {
        ?>
        <span class="text-field">
            <strong>Мелкий опт:<br> </strong>
            <?php echo $text_field;?>&nbsp;₽
            <p> от 30 000 ₽</p>
        </span>
    <?php }
    }
    
    add_action( 'woocommerce_single_product_summary', 'art_get_opt_before_add_card');
    function art_get_opt_before_add_card() {
    global $post, $product;
    $opt    = get_post_meta( $post->ID, '_opt' , true );  
    if ( $opt ) {
        ?>
        <span class="text-field">
            <strong>опт:<br> </strong>
            <?php echo $opt;?>&nbsp;₽
            <p> от 50 000 ₽</p>
        </span>
    <?php }
    }
    
    function filter_woocommerce_get_price_html( $price, $_this ) {
        $text_field = get_post_meta( $post->ID, '_text_field'. '_opt', true );
        ob_start();
        if ( $text_field ) {
            ?>
            <span class="text-field">
                    <strong>Розница: </strong>
                    <?php echo $text_field; ?>
                <p> от 1 товара </p>
                </span>
            <?php
        }
        $text = ob_get_clean();
        return '<a style="color:red;">Розница: '. $price .  ' </a>&nbsp; ' . $text;
        
    }
    add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );
    
Просмотр 1 ответа (всего 1)
  • Тема «Как в этом коде добавить 3-ю цену, с функцией?» закрыта для новых ответов.