Поддержка Проблемы и решения add_action по клику в front-end

  • Добрый день.
    Мне необходимо по действию во front-end (клик по кнопке) активировать хук
    add_action( 'woocommerce_before_calculate_totals', 'recalc_price' );
    То есть я не могу просто написать этот код в functions.php потому как он будет выполнятся всегда. А мне надо именно по клику.
    Напрашивается использование ajax.

    add_action('wp_ajax_pillow', 'pillow_recalc_price');
    add_action('wp_ajax_nopriv_pillow', 'pillow_recalc_price'); 
    
    function pillow_recalc_price()
    {
       
        add_action( 'woocommerce_before_calculate_totals', 'recalc_price' );
    
        function recalc_price( $cart_object ) {
        	foreach ( $cart_object->get_cart() as $hash => $value ) {
        	if($value['data']->get_id() == 19628){
        	    if($value['quantity'] == 1) $value['data']->set_price( 29.97 );
        	    if($value['quantity'] == 2) $value['data']->set_price( 26.95 );
        	    if($value['quantity'] == 3) $value['data']->set_price( 24.97 );
        	}
        	}
        }
    }

    Но этот код не работаtт. Подозреваю, что из-за вложенности add_action в add_action.
    Как в вордпресс сделать add_action по клику в front-end?

  • Тема «add_action по клику в front-end» закрыта для новых ответов.