Создать акаунт
Всё для вебмастера » Вопросы и ответы » CMS » WordPress » Как добавить текст в админке на странице заказа?

Как добавить текст в админке на странице заказа?

18 апр 2023, 00:00
WordPress
119
0
Здравствуйте.
У меня есть код:
// Добавление поля в карточку товараadd_action('woocommerce_single_product_summary','add_repair_price_option_to_single_product', 2 );function add_repair_price_option_to_single_product(){    global $product;    add_action('woocommerce_before_add_to_cart_button', 'product_option_custom_field', 30 );}function product_option_custom_field(){    global $product;    $active_price = $product->get_price();    $active_price_html   = $product->get_price();;        // Значение ингредиентов    $repair_price = 250;    $repair_price_html   = strip_tags( wc_price( wc_get_price_to_display( $product, array('price' => $repair_price ) ) ) );        $disp_price_sum_html = $active_price + $repair_price;    echo '    <div class="hidden-field">        <p class="form-row form-row-wide" id="repair_option_field" data-priority="">            <span class="woocommerce-input-wrapper">                <label class="checkbox">                    Ингредиент 1:                    <input type="checkbox" class="input-checkbox " name="repair_option" id="repair_option" value="1"> + ' . $repair_price_html . '                </label>            </span>        </p>        <input type="hidden" name="repair_price" value="' . $repair_price . '">        <input type="hidden" name="active_price" value="' . $active_price . '">    </div>';    // Изменение цены без перезагрузки цены    ?>    <script type="text/jаvascript">    jQuery(function($) {        var cb = 'input[name="repair_option"]'            pp = 'p.price';        // On change / select a variation        $('body').on( 'change', cb, function(){            if( $(cb).prop('checked') === true )                $(pp).html('<?php echo $disp_price_sum_html; ?>');            else                $(pp).html('<?php echo $active_price_html; ?>');        })    });    </script>    <?php}// Сложение чиселadd_filter('woocommerce_add_cart_item_data', 'add_custom_product_data', 10, 3);function add_custom_product_data( $cart_item_data, $product_id, $variation_id ) {    if (isset($_POST['repair_option']) && !empty($_POST['repair_option'])) {        $cart_item_data['new_price'] = (float) ($_POST['active_price'] + $_POST['repair_price']);        $cart_item_data['repair_price'] = (float) $_POST['repair_price'];        $cart_item_data['active_price'] = (float) $_POST['active_price'];        $cart_item_data['unique_key'] = md5(microtime().rand());    }    return $cart_item_data;}// Сложение новых значенийadd_action('woocommerce_before_calculate_totals', 'extra_price_add_custom_price', 20, 1);function extra_price_add_custom_price($cart) {    if (is_admin() && !defined('DOING_AJAX'))        return;    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )        return;    foreach($cart->get_cart() as $cart_item) {        if (isset($cart_item['new_price']))            $cart_item['data']->set_price((float) $cart_item['new_price']);    }}// Добавление текста в корзинуadd_filter('woocommerce_get_item_data', 'display_custom_item_data', 10, 2);function display_custom_item_data($cart_item_data, $cart_item) {    if (isset($cart_item['repair_price'])) {        $cart_item_data[] = array(            'name' => __("Repair option", "woocommerce"),            'value' => strip_tags( '+ ' . wc_price( wc_get_price_to_display( $cart_item['data'], array('price' => $cart_item['repair_price'] ) ) ) )        );    }    return $cart_item_data;}


Я так думаю по описанию там и так все понятно, что происходит и так далее (но если коротко, то в карточку товара добавляется выбор "ингредиента 1" за 250 рублей, при его выборе обновляется цена, то есть если товар стоил 100 рублей, он при выборе будет стоить 350 рублей. Так же это сохраняется в корзине и так же цены сохраняется в админке на странице заказов)
Но есть проблема (а именно в коде ниже). В админку не заноситя что выбран "Ингредиент 1".
// Добавление текста в корзинуadd_filter('woocommerce_get_item_data', 'display_custom_item_data', 10, 2);function display_custom_item_data($cart_item_data, $cart_item) {    if (isset($cart_item['repair_price'])) {        $cart_item_data[] = array(            'name' => __("Repair option", "woocommerce"),            'value' => strip_tags( '+ ' . wc_price( wc_get_price_to_display( $cart_item['data'], array('price' => $cart_item['repair_price'] ) ) ) )        );    }    return $cart_item_data;}


Помогите пожалуйста)

Внимание! Как добавить текст в админке на странице заказа? предоставлен пользователями сайта исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.

Смотрите также:

Комментарии к Как добавить текст в админке на странице заказа?
Добавить Комментарий
В комментариях запрещаются спам, а также реклама любых товаров и услуг, иных ресурсов.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.