Ответы в темах

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

    /* Выводим поле аренды при создании товара */
    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)