Поддержка WooCommerce Единицы измерения м2/шт

  • Всем привет. На сайте отвалились единицы измерения товара, раньше была возможность выбирать м2 или шт. Перед этим было обновление шаблона, однако единицы измерения прописаны в дочерней теме. На данном этапе в админке селект установлен для выбора, код пытались поменять, но что то не работает. Теперь если открыть любой товар, и просто ничего не меняя нажать сохранить, то на сайте он становится в ШТ а не М2 как был. То есть штуки теперь как то по умолчанию. Думаю не работает этот код. проблема в какой то строчке, но так как я в php слаба то заставить работать код сама не могу. Друзья, помогите пожалуйста правильно написать кусочек заставляющий работать селект и сохранять в м2 или в шт.

    
    <?php
    add_action( 'woocommerce_product_options_general_product_data', 'woocommerce_product_custom_fields' );
    
    function woocommerce_product_custom_fields () {
      global $woocommerce, $post;
    
      echo '<div class="options_group">';
        // Add Select field in woocommerce
        woocommerce_wp_select(
        array(
        	'id'      => 'unit_price',
        	'label'   => __( 'Единица измерения', 'productunit' ),
        	'options' => array(
            '/м²' => __( '/м²', 'productunit' ),
        		'шт'   => __( 'шт', 'productunit' ),
        		'пачка'   => __( 'пачка', 'productunit' )
        		)
        	)
        );
        echo '</div>';
    }
    // Add custom Theme Functions here
    add_filter( 'woocommerce_product_tabs', 'wcs_woo_remove_reviews_tab', 98 );
    function wcs_woo_remove_reviews_tab($tabs) {
        unset($tabs['reviews']);
        return $tabs;
    }
    function cw_change_product_price_display( $price ) {
    		$price .= '/м²';
    		return $price;
    	}
    
    	add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
      add_filter( 'woocommerce_get_price_html', 'cw_change_product_html', 10, 2 );
    	add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );
      add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_cart', 10, 3 );
    
    function cw_change_product_html( $price_html, $product ) {
    	$unit_price = get_post_meta( $product->id, 'unit_price', true );
    	if ( ! empty( $unit_price ) ) {
    		$price_html = '<span class="amount">' . wc_price( $product->price ) . '/шт.</span>';
        //$price_html = '<span class="amount">' . wc_price( $unit_price ) . '/шт.</span>';
    	}
    
    	return $price_html;
    }
    // Change the cart prices if a unit_price is set
    function cw_change_product_price_cart( $price, $cart_item, $cart_item_key ) {
    	$unit_price = get_post_meta( $cart_item['product_id'], 'unit_price', true );
    	if ( ! empty( $unit_price ) ) {
    		$price = wc_price( $product->price ) . ' per kg';
        //$price = wc_price( $unit_price ) . ' per kg';
    	}
    	return $price;
    }
    
    add_filter( 'woocommerce_subcategory_count_html', 'woo_remove_category_products_count' );
    
    function woo_remove_category_products_count() {
        return;
    }
    add_filter( 'wc_product_sku_enabled', '__return_true' );
    add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
    
    function woo_remove_product_tabs( $tabs ) {
        unset( $tabs['description'] );
        unset( $tabs['reviews'] );
        unset( $tabs['additional_information'] );
        return $tabs;
    }
    add_image_size( 'tcat', 600, 400, true );
    function is_subcategory() {
    	$cat = get_query_var( 'product_cat' );
    	$category = get_term_by( 'slug', $cat, 'product_cat' );
    	return ( $category->parent !== 0 );
    }
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 10);
    
    add_action( 'woocommerce_product_options_shipping_product_data', 'woo_add_custom_general_fields' );
    add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
    
    function woo_add_custom_general_fields() {
    
    global $woocommerce, $post;
    
    echo '<div class="options_group">';
      // Add Select field in woocommerce
      woocommerce_wp_select(
      array(
      	'id'      => '_select',
      	'label'   => __( 'Единица измерения', 'productunit' ),
      	'options' => array(
      		'шт'   => __( 'шт', 'productunit' ),
      		'пачка'   => __( 'пачка', 'productunit' ),
      		'кв.м' => __( 'кв.м', 'productunit' )
      		)
      	)
      );
      echo '</div>';
    }
    function woo_add_custom_general_fields_save( $post_id ){
    
    	// Select
    	$woocommerce_select = $_POST['_select'];
    	if( !empty( $woocommerce_select ) )
    	   update_post_meta( $post_id, '_select', esc_attr( $woocommerce_select ) );
    
       // Unit
     	$woocommerce_productunit = $_POST['unit_price'];
     	if( !empty( $woocommerce_productunit ) )
     	   update_post_meta( $post_id, 'unit_price', esc_attr( $woocommerce_productunit ) );
    
    }
    ?>
    
    

    картинка как в админке единицы измерения сейчас, а по ссылке что он показывает на сайте
    https://i.gyazo.com/1f7e0eea71d0e768b4c0e63294ca9920.png

    • Тема изменена 5 лет, 3 месяца назад пользователем Hochu_vse_znat.
    • Тема изменена 5 лет, 3 месяца назад пользователем Yui. Причина: для оформления кода есть кнопочка code
    • Тема изменена 5 лет, 3 месяца назад пользователем Yui.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • В ВП нет никаких единиц измерений.

    Перед этим было обновление шаблона

    шаблоны могут обновляться только вместе с темой.

    открыть любой товар

    товаров в ВП так же нет

    Спасибо за ответ. То есть сайт который я прикрепила сделан не на вордпрессе? и скрин не из админки вп? Плюс если посмотреть метки темы, то там как бы есть намек на то что установлен плагин woocommerce.

    Модератор Yui

    (@fierevere)

    永子

    установлен плагин woocommerce.

    перенесу в соотв. раздел форума

    намек на то что установлен плагин woocommerce.

    Именно по этому вы решили наплевать на всех и все и запостить где захотелось, а не в соответствующем разделе?
    Типа пусть все вокруг сами догадываются что у меня установлено, а я — королева?
    Плагинов ИМ для ВП более десятка, это так для справки

    Yui, спасибо за помощь. Я не очень хорошо ориентируюсь на этом форуме, нашла живую ветку, где отвечают и помогают по теме, плюс, надеюсь вы понимаете, что для человека не вордпрессника — это все едино, и я не вижу разницы. К сожалению, не все это понимают, например tuxfighter предпочитает троллинг и оскорбления, вместо помощи.
    з.ы. а это мертвая ветка, судя по количеству ответов.. и просмотров(

    • Ответ изменён 5 лет, 3 месяца назад пользователем Hochu_vse_znat.
    Модератор Yui

    (@fierevere)

    永子

    постоянные участники форума смотрят весь форум, включая и раздел WooCommerce,
    лучше вопросы по WC задавать сразу тут, чтобы не было выяснения того, на чем создан магазин.

    У tuxfighter такая специфическая манера общения, могут быть колкости, но я не скажу что он в целом не прав в сути ответов.

    Yui , поняла. Осознала. Исправлюсь. Лучше бы он не иголки в меня втыкал, а носом тыкнул что не так. Я не скрываю что нуб и не пытаюсь чужие заслуги себе приписать и денег не зарабатываю чужими мозгами делая правки.

    Насколько я знаю, вам и так пытаются помочь, на форуме, который нельзя называть.

    Лично я — просто не понимаю, зачем тянуть всякую гадость в рот в function.php
    Для этого есть плагины.
    А вот так вот страдать при каждом обновлении ВУУ, ну это ваш выбор конечно

    • Ответ изменён 5 лет, 3 месяца назад пользователем tuxfighter.

    tuxfighter, здравствуйте. мне никто не помог на форуме который нельзя называть. Вопрос решен. Ответ с верным кодом рабочим разместила там же.
    Причем тут обновления? Если редактирование происходит в дочерней теме? Или в дочерней тоже слетает?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Единицы измерения м2/шт» закрыта для новых ответов.