Функция Woocommerce для Ajax - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь преобразовать написанный мной 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.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...