Товар после добавления в корзину имеет цену 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» закрыта для новых ответов.