У меня вылетело много ошибок при активации дополнения, посмотрел по сравнению с робокасса он вообще написан старым методом.
Скину чего добился уже в переделке его.
<?php add_action( 'init', 'rcl_add_enot_gateway' ); function rcl_add_enot_gateway() { $pm = new Rcl_Enot_Payment(); $pm->register_payment( 'Rcl_Enot_Payment' ); } class Rcl_Enot_Payment extends Rcl_Payment { public $form_pay_id; function register_payment( $form_pay_id ) { $this->form_pay_id = $form_pay_id; parent::add_payment( $this->form_pay_id, array( 'class' => get_class( $this ), 'request' => 'enot-request', 'name' => 'Оплатить через Enot', 'image' => rcl_addon_url( 'icon.jpg', __FILE__ ) ) ); if ( is_admin() ) $this->add_options(); } function add_options() { add_filter( 'rcl_pay_option', (array( $this, 'options' ) ) ); add_filter( 'rcl_pay_child_option', (array( $this, 'child_options' ) ) ); } function options( $options ) { $options[$this->form_pay_id] = __( 'Оплатить через Enot', 'enot-request' ); return $options; } function child_options($child) { $opt = new Rcl_Options(); $options = array( $opt->title( __( 'Оплатить через Enot', 'rcl-robokassa' ) ), $opt->label( __( 'Наименование платежной системы', 'rcl-robokassa' ) ), $opt->option( 'text', array( 'name' => 'enot_custom_name' ) ), $opt->label( __( 'ID магазина', 'rcl-robokassa' ) ), $opt->option( 'number', array( 'name' => 'enot_id' ) ), $opt->label( __( 'Секретный пароль', 'rcl-robokassa' ) ), $opt->option( 'password', array( 'name' => 'enot_secret_key' ) ), $opt->label( __( 'Дополнительный ключ', 'rcl-robokassa' ) ), $opt->option( 'password', array( 'name' => 'enot_other_key' ) ), ); $child .= $opt->child( array( 'name' => 'connect_sale', 'value' => $this->form_pay_id ), $options ); return $child; } function pay_form( $data ) { return parent::construct_form( [ 'action' => "https://enot.io/pay", 'method' => 'get', 'fields' => array( 'm' => rcl_get_commerce_option( 'enot_id' ), 'oa' => $data->pay_summ, 'o' => $data->pay_id, 's' => md5( implode( ':', [ rcl_get_commerce_option( 'enot_id' ), $data->pay_summ, rcl_get_commerce_option( 'enot_secret_key' ), $data->pay_id ] ) ), 'cr' => $data->currency, 'c' => $data->description, 'success_url' => get_permalink( $data->page_successfully ), 'fail_url' => get_permalink( $data->page_fail ), 'cf[user_id]' => $data->user_id, 'cf[pay_type]' => $data->pay_type, 'cf[baggage]' => $data->baggage_data, ) ] ); } function result( $data ) { $sign = md5( implode( ':', [ $_REQUEST['merchant'], $_REQUEST['amount'], rcl_get_commerce_option( 'enot_other_key' ), $_REQUEST["merchant_id"] ] ) ); if ( $sign != $_REQUEST['sign_2'] ) { rcl_add_log( 'enot-sign-error', $_REQUEST, 1 ); rcl_mail_payment_error( $sign ); exit; } if ( ! parent::get_payment( $_REQUEST['merchant_id'] ) ) { parent::insert_payment( array( 'pay_id' => $_REQUEST['merchant_id'], 'pay_summ' => $_REQUEST['amount'], 'user_id' => $_REQUEST["custom_field"]['user_id'], 'pay_type' => $_REQUEST["custom_field"]['pay_type'] ) ); } echo "Good"; exit; } }
Хорошо, если я не хочу и не буду обновлять версию своего WP-Recall так как я очень много изменил в ядре и меня все устраивает, как мне получить версию Enot Gateway до обновления на версию 16.24.0? У вас остаются плагины на старые версии или выходит что всем нужно обновляться и вносить свои изменения заново?
Uncaught Error: Class 'Rcl_Gateway_Core' not found in /home/i53617/public_html/-site-/wp-content/plugins/wp-recall/add-on/enot-gateway/index.php:8 Stack trace: #0 /home/i53617/public_html/-site-/wp-content/plugins/wp-recall/functions/addons.php(92): include_once() #1 /home/i53617/public_html/-site-/wp-content/plugins/wp-recall/admin/add-on-manager.php(290): rcl_activate_addon('enot-gateway') #2 /home/i53617/public_html/-site-/wp-includes/class-wp-hook.php(287): rcl_update_status_addon('') #3 /home/i53617/public_html/-site-/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters('', Array) #4 /home/i53617/public_html/-site-/wp-includes/plugin.php(478): WP_Hook->do_action(Array) #5 /home/i53617/public_html/-site-/wp-content/plugins/wp-recall/admin/admin-menu.php(86): do_action('rcl_init_addons...') #6 /home/i53617/public_html/-site-/wp-includes/class-wp-hook.php(287): rcl_add_options_addons in /home/i53617/public_html/-site-/wp-content/plugins/wp-recall/add-on/enot-gateway/index.php on line 8
А вот и сами ошибки
Всё движется вперёд - старые версии уходят в историю. Мы не храним старые версии.
Техподдержка осуществляется при условии что:
- Вы не изменяли ядро
- Вы обновились до актуальных версий.
- Все кастомизации (фильтры, css) должны быть, при обращению в техподдержку, отключены.
Мы не можем нести ответственности за ваши действия и тратить время на решение, возможно уже решенных в обновлении, проблем.
icedesign сказал(а)
А вот и сами ошибки
Я не заметил что у вас версия реколл старая. Обновите плагин.
Сейчас ошибки, что у вас возникают, нам получается не нужны т.к. и так понятно от чего они возникают. Обновляйтесь.
И не правьте ядро плагина. Это ущербная практика и несет только проблемы и никто из разработчиков так не делает.
Понял принял.. я пользуюсь вашим плагином с 9 сентября, а обновления такие частые и глобальные. Как будто год, что все дополнения у людей полетят. Вот бы WP так делало, чтоб все плагины через каждый месяц надо было переписывать из-за переименовывания класса.
Нашел на просторах слитый плагин, кому надо может пользоваться. Если нельзя выставлять удалите. Тему можно закрывать.
del
Не стоит делать поспешные выводы. И в новостях всё есть - почему пошло, необратимое с старым, движение вперед
Жизненный цикл разработки требует переписывания апи. Последний раз глобально все менялось более 3х лет назад
И тянуть старое - даже вордпресс отбрасывает поддержку старого. Не нужно некорректное сравнение делать.
Всё движется вперед - но если лезть в ядро - вы всегда будете позади и мало того - у вас не будет доступа к исправленным уязвимостям - т.к. отказываетесь от обновлений
а что поломалось и где? платежные дополнения написанные на старом АПИ сохраняют свою работоспособность и на новом АПИ
icedesign сказал(а)
А вот и сами ошибки: Uncaught Error: Class 'Rcl_Gateway_Core' not found
Это означает, что вы пытались использовать класс из нового АПИ на старой версии, где он не определен, ваша ошибка вызвана только вашими действиями, больше винить некого, пытались приспособить последнюю версию дополнения на старое АПИ, да видимо не учли некоторые нюансы.
Закрыто.