Отправка данных с функциями ajax до PHP. php с ошибкой 500 - PullRequest
0 голосов
/ 04 апреля 2020

Я использую Wordpress, я хочу отправить переменную javascript своим функциям. php. Я сделал это правильно, как Wordpress, но я все равно получаю 500 ошибок. Я проверил журналы ошибок, но там только 500 ошибок admin- ajax. php. В моей консоли данные в переменных ajax в порядке.

Вот мой JS файл:

var x = document.getElementsByClassName("pewc_group_3414_3415");
var subtotalx = "";

(function($) {
  $(document).ready(function(){
    $(".ast-woocommerce-container").click(function(){
    subtotalx = x.item(0).getAttribute("data-field-price");
    subtotalx = parseFloat(subtotalx).toFixed(2);   

        var str = {
            'action': 'prefix_filter_validate_cart_item_status',
            'variable': subtotalx,
        };

        $.ajax({
        type: "post",
        dataType : "json",
        url: my_ajax_object.ajax_url,
        data: str,
        success: function (response) {

          console.log('success');
        },
        error: function(jqXHR, textStatus, errorThrown) {
           console.log(textStatus, errorThrown);
        }
    });     

    }) 
 });
}(jQuery));

Вот мой PHP Код:

function load_js_assets() {
    if( is_single( 3227 ) ) {
        wp_enqueue_script( 'ajax-script', get_stylesheet_directory_uri() . '/custom-js.js', array('jquery') );
        wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
    } 
}

add_action('wp_enqueue_scripts', 'load_js_assets');
add_action('wp_ajax_prefix_filter_validate_cart_item_status', 'prefix_filter_validate_cart_item_status');
add_action('wp_ajax_nopriv_prefix_filter_validate_cart_item_status', 'prefix_filter_validate_cart_item_status');

/**
 * Custom validation for add-on fields
 */
function prefix_filter_validate_cart_item_status( $passed, $post, $item ) {
    $MIN_AMOUNT_ORDER = 14.99;
        $variable = $_POST['variable'];
        var_dump($variable);

    if( isset( $post['add-to-cart'] ) ) {
        $variable = $_POST['variable'];
        var_dump($variable);
        wc_add_notice( 'Minimum bestelbedrag van groente en fruit is €' . $MIN_AMOUNT_ORDER, 'error' );
        $passed = false;
    }
  return $passed;
}

add_filter( 'pewc_filter_validate_cart_item_status', 'prefix_filter_validate_cart_item_status', 10, 3 );

Я попробовал все без успеха. Изменен / переименован в htaccess, увеличен мой лимит памяти. Все еще ошибка 500 с КРАСНЫМ цветом в консоли.

Обновление: Ошибка в debug.log:

PHP Fatal error:  Uncaught ArgumentCountError: Too few arguments to function prefix_filter_validate_cart_item_status(), 1 passed in /var/www/vhosts/x.nl/httpdocs/wp-includes/class-wp-hook.php on line 287 and exactly 3 expected in /var/www/vhosts/x.nl/httpdocs/wp-content/themes/astra-child/functions.php:41
Stack trace:
#0 /var/www/vhosts/freshdelivering.nl/httpdocs/wp-includes/class-wp-hook.php(287): prefix_filter_validate_cart_item_status('')
#1 /var/www/vhosts/x.nl/httpdocs/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters('', Array)
#2 /var/www/vhosts/x.nl/httpdocs/wp-includes/plugin.php(478): WP_Hook->do_action(Array)
#3 /var/www/vhosts/freshdelivering.nl/httpdocs/wp-admin/admin-ajax.php(175): do_action('wp_ajax_prefix_...')
#4 {main}
  thrown in /var/www/vhosts/x.nl/httpdocs/wp-content/themes/astra-child/functions.php on line 41
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...