Є багато причин, які можуть призвести до того, що перевірка SSL не вдалася. Починаючи від занадто багато переадресацій до неправильних .ini
файлів / установок або просто відсутніх сертифікатів або піддоменів. У будь-якому випадку вам потрібно буде знайти причину цього і виправити це . Там немає ні шляху навколо нього.
Але щоб тимчасово вирішити цю проблему (скажімо, вам потрібно розвинути свій код і виправити помилку SSL згодом), ви можете використовувати фільтр:
add_filter( 'https_ssl_verify', '__return_false' );
Коли ви це виконуєте під час віддаленого запиту, вам слід загорнути його у зворотний виклик, приєднаний до фільтра, який запускається під час такого запиту HTTP. Не забудьте перевірити, чи дійсно ви видаляєте перевірку на правильний випадок - і переконайтеся, що ви запускаєте це лише один раз, щоб не захистити інші запити.
add_filter( 'http_request_args', function( $params, $url )
{
// find out if this is the request you are targeting and if not: abort
if ( 'foo' !== $params['foo'] )
return $params;
add_filter( 'https_ssl_verify', '__return_false' );
return $params;
}, 10, 2 );
Якщо це загальнодоступний плагін, можливо, ви захочете долучити його до простого варіанту, який користувач може вмикати або вимикати. Ви також можете спробувати спершу перевірений запит, а якщо ні (і якщо користувач увімкнув непідписаний запит), перейдіть на потенційно небезпечний запит.
Практичне правило:
Ніколи не виконуйте незахищений запит, поки ваш користувач не погодиться на це і не дізнається про ризики.