Как изменить эту сложную функцию на простой редирект
Я внес некоторые изменения в плагин для электронной коммерции wordpress, и я взял тонну функций, чтобы сделать его проще для моих нужд. Теперь он не будет перенаправляться на страницу благодарности после нажатия кнопки покупки, потому что функция использует некоторые переменные, от которых я избавился, например order_id
и т. д.
Вот код и функции, с которыми я работаю:
Большое спасибо!!!
Входной элемент:
<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 & 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 ответа:
На вкладке 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: '); для перенаправления.