Когда я пытаюсь установить новый сервер для своего экземпляра Wordpress и использовать плагин для платежей, я получаю сообщение об ошибке, при попытке создать функцию запуска возникает ошибка «PHP Fatal error: Uncaught TypeError» Может быть, потому что мыпереместите экземпляр PHP 5.6 на новый сервер с PHP 7.1.Мы получаем эту ошибку в нашем журнале Apache / PHP:
[Sat Feb 02 17:49:52.255570 2019] [php7:error] [pid 15655]
[client XXX.XX.XX.XXX:47110] PHP Fatal error:
Uncaught TypeError: Argument 1 passed to Moip\\Resource\\MoipResource::__construct()
must be an instance of Moip\\Moip, boolean given,
called in /var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/src/Controller/Moip_Connects.php on line 109 and defined in
/var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/vendor/moip/moip-sdk-php/src/Resource/MoipResource.php:56\nStack
trace:\n#0 /var/www/xxxxxxxxx/www/wp-content/plugins/woo-moip-official/src/Controller/Moip_Connects.php(109):
Moip\\Resource\\MoipResource->__construct(false)\n#1 /var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/src/Controller/Moip_Connects.php(85):
Woocommerce\\Moip\\Controller\\Moip_Connects->set_token_notification()\n#2
/var/www/xxxxxxxx/www/wp-includes/class-wp-hook.php(286): Woocommerce\\Moip\\Controller\\Moip_Connects->authorize_api('')\n#3 /var/www/xxxxxxxx/www/wp-includes/class-wp-hook.php(310):
WP_Hook->apply_filters('', Array)\n#4 /var/www/xxxxxxxx/www/wp-
includes/plugin.php(453 in /var/www/xxxxxxxx/www/wp-content/plugins/woo-moip-official/vendor/moip/moip-sdk-php/src/Resource/MoipResource.php on line 56
Строка 109 в Moip_Connects.php - это $ webhook = new Webhook ($ this-> moip_sdk-> moip);в коде:
public function set_token_notification()
{
try {
$webhook = new Webhook( $this->moip_sdk->moip );
$response = $webhook->create();
if ( $response->token ) {
$this->setting->set( 'webhook_token', $response->token );
$this->setting->set( 'webhook_id', $response->id );
}
unset( $webhook );
} catch( Exception $e ) {
error_log( $e->__toString() );
}
}
И строка 56 является публичной функцией __construct (Moip $ moip) в коде:
/*Create a new instance.
*
* @param \Moip\Moip $moip
*/
public function __construct(Moip $moip)
{
$this->moip = $moip;
$this->data = new stdClass();
$this->initialize();
}
Как мы можем решить эту проблему для PHP 7.1?