Поддержка Проблемы и решения Плагин цены товара

  • Написал плагин(костыль) для перевода цены из доллара в гривну (woocommerce). Но есть проблема, цены пересчитываются только при обновление товара или когда добавить новий товар. Как это исправить?

    function option_install(){
    }
    function option_unistall(){
    }
    register_activation_hook(__FILE__,'opinions_install');
    register_deactivation_hook(__FILE__,'opinions_unistall');
    
    add_action ('admin_menu', 'dynamic_price_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 product
    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 );
    
    exted();
    change_price($this);
    
    function exted(){
        global $my_curses;
        $data = file_get_contents('https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5');
        $curses = json_decode($data, true);
        $my_curses = strval($curses[2]['sale']);
    
        $cached = get_transient( 'exchange' );
        set_transient( 'exchange', $my_curses, 1 * HOUR_IN_SECONDS );
        return  $my_curses;
    }
    
    function change_price ($this) {
        // $my_curses->exted($my_curses);
        $int = $this;
        if ($GLOBALS['my_curses']!='') {
            return $int*$GLOBALS['my_curses'];
        } else  return  $int;
    }
    • Тема изменена 6 лет, 3 месяца назад пользователем protsport4991.
  • Тема «Плагин цены товара» закрыта для новых ответов.