Как изменить эту сложную функцию на простой редирект


Я внес некоторые изменения в плагин для электронной коммерции wordpress, и я взял тонну функций, чтобы сделать его проще для моих нужд. Теперь он не будет перенаправляться на страницу благодарности после нажатия кнопки покупки, потому что функция использует некоторые переменные, от которых я избавился, например order_id и т. д.

Я работаю над этим уже несколько часов, и все, что я хочу, чтобы это было перенаправление, чтобы поблагодарить вас.php по нажатию кнопки покупки. (Я знаю, что сейчас он использует ajax, и я бы не стал я не нуждаюсь в нем, чтобы перейти к функции processpayment или чему-то подобному. Действительно простой.

Вот код и функции, с которыми я работаю:

Большое спасибо!!!

Входной элемент:

<div id="payment">

        <div class="form-row">

            <noscript><?php _e('Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.', 'jigoshop'); ?><br/><input type="submit" class="button-alt" name="update_totals" value="<?php _e('Update totals', 'jigoshop'); ?>" /></noscript>

            <?php jigoshop::nonce_field('process_checkout')?>
            <input type="submit" class="button-alt" name="place_order" id="place_order" value="<?php _e('Next Step', 'jigoshop'); ?>" />

            <?php do_action( 'jigoshop_review_order_before_submit' ); ?>

            <?php if (get_option('jigoshop_terms_page_id')>0) : ?>
            <p class="form-row terms">
                <label for="terms" class="checkbox"><?php _e('I accept the', 'jigoshop'); ?> <a href="<?php echo get_permalink(get_option('jigoshop_terms_page_id')); ?>" target="_blank"><?php _e('terms &amp; conditions', 'jigoshop'); ?></a></label>
                <input type="checkbox" class="input-checkbox" name="terms" <?php if (isset($_POST['terms'])) echo 'checked="checked"'; ?> id="terms" />
            </p>
            <?php endif; ?>

            <?php do_action( 'jigoshop_review_order_after_submit' ); ?>

        </div>

    </div>

Проверка.класс.php:

        // Process Payment
                    $result = $available_gateways["cheque"]->process_payment( $order_id );


                    // Redirect to success/confirmation/payment page

                        if (is_ajax()) : 
                            ob_clean();
                            echo json_encode($result);
                            exit;
                        else :
                            wp_safe_redirect( $result['redirect'] );
                            exit;
                        endif;


                else :

                    // No payment was required for order
                    $order->payment_complete();

                    // Empty the Cart
                    jigoshop_cart::empty_cart();

                    // Redirect to success/confirmation/payment page
                    $checkout_redirect = apply_filters( 'jigoshop_get_checkout_redirect_page_id', get_option( 'jigoshop_thanks_page_id' ) );
                    if (is_ajax()) : 
                        ob_clean();
                        echo json_encode( array( 'redirect' => get_permalink( $checkout_redirect ) ) );
                        exit;
                    else :
                        wp_safe_redirect( get_permalink( $checkout_redirect ) );
                        exit;
                    endif;

                endif;

                // Break out of loop
                break;

Функция оплаты процесса:

function process_payment() {


        // Remove cart
        jigoshop_cart::empty_cart();

        // Return thankyou redirect
        $checkout_redirect = apply_filters( 'jigoshop_get_checkout_redirect_page_id', get_option( 'jigoshop_thanks_page_id' ) );
        return array(
            'result'    => 'success',
            'redirect'  => add_query_arg('key', $order->order_key, add_query_arg('order', $order_id, get_permalink( $checkout_redirect )))
        );

    }

Вот сведения об ошибке, которые я получаю от firebug:

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

Введите описание изображения здесь

После Того, Как Я включив отладку, я получил следующие ошибки:

Примечание: неопределенный индекс: aiosp_enabled in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/all_in_one_seo_pack.РНР в строке 710

Примечание: неопределенный индекс: aiosp_enabled in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/all_in_one_seo_pack.РНР в строке 710

Примечание: использование неопределенной константы PLUGIN_URL-предполагается 'PLUGIN_URL' в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/РГ-Google-шрифты/Google-шрифты.РНР на строке 81

Примечание: использование неопределенной константы PLUGIN_PATH-предполагается 'PLUGIN_PATH' в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/РГ-Google-шрифты/Google-шрифты.РНР в строке 82

Примечание: неопределенный индекс: хост в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/джетпак/реактивный ранец.РНР на линии 2306

Примечание: неопределенный индекс: доставка-first_name in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 198

Оплачивала доставку-фамилия в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 199

Примечание: неопределенный индекс: судоходная компания в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 200

Примечание: неопределенный индекс: адрес доставки в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 201

Примечание: неопределенный индекс: доставка-адрес-2 в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 202

Оплачивала доставка-город в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 203

Примечание: неопределенный индекс: отгрузка-состояние в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 204

Примечание: неопределенный индекс: доставка-почтовый индекс в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 205

Внимание: Второй этап: доставка в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 206

Важно:

Обратите внимание: неопределенная переменная: user_id в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 211

Примечание: неопределенный индекс: order_comments in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на строке 256

Примечание: неопределенный индекс: billing-company in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 264

Примечание: неопределенный индекс: billing-address in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 265

Внимание: Неопределенный индекс: billing-address-2 in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 266

Оплачивала счетов-город в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 267

Примечание: неопределенный индекс: биллинг-почтовый индекс в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 268

Примечание: неопределенный индекс: страна выставления счетов в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 269

Примечание: неопределенный индекс: billing-state in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 270

Примечание: неопределенный индекс: биллинг-телефон в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 272

Примечание: неопределенный индекс: shipping_method in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 282

Примечание: неопределенный индекс: payment_method in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 283

Внимание: Второй этап: aiosp_edit в /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/aioseop.класс.РНР на линии 1105

Краткое описание: извращенец-aioseop-редактирование в /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/aioseop.класс.РНР на линии 1106

Важно:

Обратите внимание: неопределенная переменная: user_id в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 364

Примечание: неопределенная переменная: available_gateways in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 379

Важно:

Фатальная ошибка: вызов функции-члена process_payment () на a в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 379

Примечание: неопределенный индекс: aiosp_enabled in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/all_in_one_seo_pack.РНР в строке 710

Примечание: неопределенный индекс: aiosp_enabled in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/all_in_one_seo_pack.РНР в строке 710

Примечание: использование undefined constant PLUGIN_URL-предполагается, что 'PLUGIN_URL' в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/РГ-Google-шрифты/Google-шрифты.РНР на строке 81

Примечание: использование неопределенной константы PLUGIN_PATH-предполагается 'PLUGIN_PATH' в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/РГ-Google-шрифты/Google-шрифты.РНР в строке 82

Примечание: неопределенный индекс: хост в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/джетпак/реактивный ранец.РНР на линии 2306

Оплачивала доставку-имя в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 198

Оплачивала доставку-фамилия в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 199

Примечание: неопределенный индекс: судоходная компания в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 200

Примечание: неопределенный индекс: адрес доставки в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 201

Примечание: неопределенный индекс: доставка-адрес-2 в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 202

Оплачивала доставка-город в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 203

Примечание: неопределенный индекс: отгрузка-состояние в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 204

Примечание: неопределенный индекс: доставка-почтовый индекс в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 205

Примечание: неопределенный индекс: страна отгрузки в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 206

Обратите внимание: неопределенная переменная: user_id в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 211

Внимание: Второй этап: order_comments в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на строке 256

Примечание: неопределенный индекс: billing-company in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 264

Примечание: неопределенный индекс: billing-address in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 265

Примечание: неопределенный индекс: billing-address-2 in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 266

Оплачивала счетов-город в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 267

Примечание: неопределенный индекс: биллинг-почтовый индекс в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 268

Примечание: неопределенный индекс: страна выставления счетов в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 269

Примечание: неопределенный индекс: billing-state in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на линии 270

Внимание: Неопределенный индекс: биллинг-телефон в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 272

Примечание: неопределенный индекс: shipping_method in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 282

Примечание: неопределенный индекс: payment_method in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР на строка 283

Примечание: неопределенный индекс: aiosp_edit in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/aioseop.класс.РНР на линии 1105

Краткое описание: извращенец-aioseop-редактирование в /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/aioseop.класс.РНР на линии 1106

Обратите внимание: неопределенная переменная: user_id в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 364

Примечание: неопределенная переменная: available_gateways in /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 379

Важно!!!!:

Фатальная ошибка: вызов функции-члена process_payment () на a в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/автоматически/классы/jigoshop_checkout.класс.РНР в строке 379

Примечание: неопределенный индекс: aiosp_enabled in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/all_in_one_seo_pack.РНР в строке 710

Примечание: неопределенный индекс: aiosp_enabled in /Дома2/findmyki/public_html/bolistylus/WP-содержание/плагины/все-в-одном-СЕО-Пак/all_in_one_seo_pack.РНР в строке 710

Примечание: использование undefined constant PLUGIN_URL-предполагается, что 'PLUGIN_URL' в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/РГ-Google-шрифты/Google-шрифты.РНР на строке 81

Примечание: использование неопределенной константы PLUGIN_PATH-предполагается 'PLUGIN_PATH' в /Дома2/findmyki/public_html/bolistylus/WP-содержание/Плагины/РГ-Google-шрифты/Google-шрифты.РНР в строке 82

2 3

2 ответа:

На вкладке response должен быть какой-то текст или строка json, но она пуста. Это может быть результатом ошибки php, которая скрыта, потому что настройки php на вашем сервере настроены на скрытие всех сообщений об ошибках, что хорошо.

Включите отладку см. http://codex.wordpress.org/Editing_wp-config.php#Debug и попробуйте еще раз. На вкладке "ответ" должен быть текст.

Обновить включить отладку:

Что-то здесь не так. Ты понимаешь? эти ошибки при отправке запроса Ajax?

Глядя на эти ошибки, я вижу, что у вас есть фатальная ошибка, которая, должно быть, остановила выполнение кода.

Fatal error: Call to a member function process_payment() on a non-object in /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php on line 379

Вы изменили исходный файл jigoshop_checkout.класс.PHP, так что это трудно для меня, чтобы найти точные линии для этих ошибок. Но "обратите внимание: неопределенный индекс:" означает, что переменная массива в этой строке не имеет индекса...

Метод 'process_payment' вызывается один раз в этом файл

// Process Payment
$result = $available_gateways[$this->posted['payment_method']]->process_payment( $order_id );

$available_gateways-это массив с объектами различных способов оплаты. Но нет объекта для метода оплаты, определенного в $this - > posted ['payment_method']

Кроме того, я вижу, что есть еще одно сообщение об ошибке, что переменная $available_gateways не существует / определена

Notice: Undefined variable: available_gateways in /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php on line 379

Эта переменная может быть определена только тогда, когда jigoshop_cart:: needs_payment () возвращает true

if (jigoshop_cart::needs_payment()) :
        // Payment Method
        $available_gateways = jigoshop_payment_gateways::get_available_payment_gateways();
        if (!isset($available_gateways[$this->posted['payment_method']])) :
                jigoshop::add_error( __('Invalid payment method.','jigoshop') );
        else :
                // Payment Method Field Validation
                $available_gateways[$this->posted['payment_method']]->validate_fields();
        endif;
endif;
<input type="button" value="Submit" onClick="location.href='thankyou.php';">

Если вам больше ничего не нужно, попробуйте это сделать. Возможно, Вам потребуется отредактировать href, чтобы перейти туда, куда вы хотите. Это сработало для меня на моем сайте.

Также вы всегда можете перенаправить действие формы на другую страницу, после чего эта страница перенаправляется на страницу благодарности после обработки.

Просто используйте заголовок ('Location: '); для перенаправления.