9ответ(ов) в теме
icedesign
не в сети 5 лет
На сайте с 05.05.2020
Участник
Тем 10
Сообщения 34
1
17:07
Версия WP-Recall: 16.22.12
Версия дополнения: 1.1.0

У меня вылетело много ошибок при активации дополнения, посмотрел по сравнению с робокасса он вообще написан старым методом.

Скину чего добился уже в переделке его.

<?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:08icedesignПричина: не указано
0

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