Я пытаюсь преобразовать написанный мной php-код, чтобы показать результаты с помощью Ajax, вместо того, чтобы перезагружать страницу и затем показывать результаты.
Итак, я сделал пользовательскую функцию, которая помещала вариационный SKU вариабельного продукта woocommerce в переключатель. Код перечисляет все SKU вариантов в качестве переключателей, а затем есть кнопка поиска, которая при нажатии на нее выполняет запрос sql, который выбирает все данные из wc_product_meta_lookup, соответствующие SKU варианта, и показывает их после формы sumbit.
<code>
add_action('woocommerce_single_product_summary', 'get_product_by_sku', 39);
function get_product_by_sku()
{
global $wpdb;
global $product;
foreach ($product->get_variation_attributes() as $taxonomy => $terms_slug) {
// To get the attribute label (in WooCommerce 3+)
$taxonomy_label = wc_attribute_label($taxonomy, $product);
// Setting some data in an array
$variations_attributes_and_values[$taxonomy] = array('label' => $taxonomy_label);
foreach ($terms_slug as $term) {
// Getting the term object from the slug
$term_obj = get_term_by('slug', $term, $taxonomy);
$term_id = $term_obj->term_id; // The ID <== <== <== <== <== <== HERE
$term_name = $term_obj->name; // The Name
$term_slug = $term_obj->slug; // The Slug
// $term_description = $term_obj->description; // The Description
// Setting the terms ID and values in the array
$variations_attributes_and_values[$taxonomy]['terms'][$term_id] = array(
'name' => $term_name,
);
}
}
foreach ($variations_attributes_and_values['pa_megethos']['terms'] as $valuename) {
$arraynames[] = $valuename['name'];
}
sort($arraynames);
if (is_product()) {
if ($product->is_type('variable')) {
$product_sku = $product->get_sku();
$product_get_id = $product->get_id();
$parent_sku = substr($product_sku, 0, 8);
$product_variations = $product->get_available_variations();
foreach ($product_variations as $variation) {
$arrayvalues[] = $variation['sku'];
}
sort($arrayvalues);
$c = array_combine($arraynames, $arrayvalues);
echo '<pre>';
print_r($c);
echo '
';
echo '';
foreach ($ c как $ key => $ value) {
// echo '
'. $ key. ':
';
echo '
';
}
echo '
';
if (isset ($ _ GET ['inMRIHi'])) {
$ inMRIHi = (sanitize_text_field ($ _ GET ['inMRIHi']));
$ query = 'SELECT * FROM wp_wc_product_meta_lookup WHERE sku =% s';
$ results = $ wpdb-> get_results ($ wpdb-> prepare ($ query, $ inMRIHi));
print_r ($ results);
};
}
}
}
Я хочу загрузить эти результаты ($ results) через AJAX, чтобы вам не приходилось перезагружать страницу, чтобы увидеть их.
К сожалению, я не знаю jquery. Приведенный выше код работает и выполняет свою работу, но я хочу реализацию ajax.
Спасибо.