Поддержка WooCommerce Товар после добавления в корзину имеет цену 0.00

  • Добрый день. Мои поставщики дают цену в разной валюте(закупка в грн, usd и eur. отображение товара в грн), использую плагин для мультивалютности. Всё отображается нормально, но в корзине цена товара 0.00

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

    add_action ('admin_menu', 'dynamic_button');
    //Simple product
    add_filter( 'woocommerce_get_price',                      'change_price', PHP_INT_MAX - 100, 2 );
    // add_filter( 'woocommerce_get_sale_price',                 'change_price', PHP_INT_MAX - 100, 2 );
    add_filter( 'woocommerce_get_regular_price',              'change_price', PHP_INT_MAX - 100, 2 );
    // Variations
    add_filter( 'woocommerce_variation_prices_price',         'change_price', PHP_INT_MAX - 100, 2 );
    add_filter( 'woocommerce_variation_prices_regular_price', 'change_price', PHP_INT_MAX - 100, 2 );
    // add_filter( 'woocommerce_variation_prices_sale_price',    'change_price', PHP_INT_MAX - 100, 2 );
    add_action( 'admin_init', 'register_mysettings' );
    
    add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_fields' );
    function woo_add_custom_fields() {
    	global $product, $post;
    	echo '<div class="options_group">';
    	woocommerce_wp_select( 
    array( 
        'id'      => 'selectov', 
        'label'   => __( 'Валюта', 'woocommerce' ), 
        'options' => array(
            'one'   => __( 'Гривна', 'woocommerce' ),
            'two'   => __( 'Доллар', 'woocommerce' ),
            'three' => __( 'Евро', 'woocommerce' )
            )
        )
    );
      echo '</div>';
    }
    
    function register_mysettings () {
        register_setting( 'baw-settings-group', 'kurs' );
    	register_setting( 'baw-settings-group', 'kurs_usd' );
    	register_setting( 'baw-settings-group', 'kurs_eur' );
        register_setting( 'baw-settings-group', 'valuta' );
    }
    
    function setting_page () {
    ?>
    <div class="wrap">
    <h2>Курс валют</h2>
    <form method="post" action="options.php">
        <?php settings_fields( 'baw-settings-group' ); ?>
        <table class="form-table">
            <tr valign="top">
            <th scope="row">Курс ГРН</th>
            <td><input type="text" name="kurs" value="<?php echo get_option('kurs'); ?>" /></td>
    		<th scope="row">Курс USD</th>
            <td><input type="text" name="kurs_usd" value="<?php echo get_option('kurs_usd'); ?>" /></td>
    		<th scope="row">Курс EUR</th>
            <td><input type="text" name="kurs_eur" value="<?php echo get_option('kurs_eur'); ?>" /></td>
            </tr>               
        </table>
        
        <p class="submit">
        <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
        </p>
    
    </form>
    </div>
    <?php }
    
    add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
    
    function woo_add_custom_general_fields_save( $post_id ){        
        // Select
        $woocommerce_select = $_POST['selectov'];
        if( !empty( $woocommerce_select ) )
            update_post_meta( $post_id, 'selectov', esc_attr( $woocommerce_select ) );  
    }
    
    //Если удалить строки "if ($valut == 'one')", "if ($valut == 'two')", "if ($valut == 'three')", то весь товар считается по первому курсу валюты, но зато цена отображается в корзине.
    
    function change_price ($this) {
    	$int = $this;
        $valut = get_post_meta( get_the_ID(), 'selectov', true );
        // Grab the product id
         if ($valut == 'one'){
    	$kurs=get_option('kurs');
    	if ($kurs!='' && $this>0) {
    		return $int*$kurs;
    	} else  return  $int;
    	 }
    	if ($valut == 'two'){
    	$kurs=get_option('kurs_usd');
    	if ($kurs!='' && $this>0) {
    		return $int*$kurs;
    	} else  return  $int;
    	}
    	 if ($valut == 'three'){
    	$kurs=get_option('kurs_eur');
    	if ($kurs!='' && $this>0) {
    		return $int*$kurs;
    	} else  return  $int;
    }
    }
    
    	
    
    function dynamic_button () {
        add_submenu_page ('woocommerce', 'Курс валют', 'Курс валют', 'manage_options', 'dynamic_price', 'setting_page');
    }
    
     
    ?>

    Помогите пожалуйста, уже неделю мучаюсь, не могу решить эту проблему

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

  • Тема «Товар после добавления в корзину имеет цену 0.00» закрыта для новых ответов.