9ответ(ов) в теме
У меня вылетело много ошибок при активации дополнения, посмотрел по сравнению с робокасса он вообще написан старым методом.
Скину чего добился уже в переделке его.
<?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;
}
}
Редакции сообщения
24.09.2020 17:08Причина: не указано
Fatal error: Uncaught Error: Call to undefined function ads_get_box() in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php:15 Stack trace: #0 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(310): add_adv_content_after_first_forum_post('pfm-single-post...', '/var/www/www-ro...') #1 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters('', Array) #2 /var/www/www-root/data/www/codeseller.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #3 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/functions/files.php(57): do_action('rcl_include_tem...', 'pfm-single-post...', '/var/www/www-ro...') #4 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/functions-templates.php(117): rcl_include_template('pfm-single-post...', '/var/www/www-ro...') #5 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/themes/prime-first/templates/pfm in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php on line 15