Я использую 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