Commit realizado el 12:13:52 08-04-2024
This commit is contained in:
257
wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha.php
Normal file
257
wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha.php
Normal file
@@ -0,0 +1,257 @@
|
||||
<?php
|
||||
|
||||
namespace WPForms\Admin\Settings;
|
||||
|
||||
use WPForms\Admin\Notice;
|
||||
use WPForms\Admin\Settings\Captcha\Page;
|
||||
|
||||
/**
|
||||
* CAPTCHA setting page.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
class Captcha {
|
||||
|
||||
/**
|
||||
* Slug identifier for admin page view.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VIEW = 'captcha';
|
||||
|
||||
/**
|
||||
* The hCaptcha javascript URL-resource.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
const HCAPTCHA_API_URL = 'https://hcaptcha.com/1/api.js';
|
||||
|
||||
/**
|
||||
* The reCAPTCHA javascript URL-resource.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
const RECAPTCHA_API_URL = 'https://www.google.com/recaptcha/api.js';
|
||||
|
||||
/**
|
||||
* Saved CAPTCHA settings.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $settings;
|
||||
|
||||
/**
|
||||
* Initialize class.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
public function init() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::init()' );
|
||||
|
||||
( new Page() )->init();
|
||||
}
|
||||
|
||||
/**
|
||||
* Init CAPTCHA settings.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
public function init_settings() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::init_settings()' );
|
||||
|
||||
( new Page() )->init_settings();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hooks.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
public function hooks() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::hooks()' );
|
||||
|
||||
( new Page() )->hooks();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register CAPTCHA settings tab.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @param array $tabs Admin area tabs list.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function register_settings_tabs( $tabs ) {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::register_settings_tabs()' );
|
||||
|
||||
return ( new Page() )->register_settings_tabs( $tabs );
|
||||
}
|
||||
|
||||
/**
|
||||
* Register CAPTCHA settings fields.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @param array $settings Admin area settings list.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function register_settings_fields( $settings ) {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::register_settings_fields()' );
|
||||
|
||||
return ( new Page() )->register_settings_fields( $settings );
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-init CAPTCHA settings when plugin settings were updated.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
public function updated() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::updated()' );
|
||||
|
||||
( new Page() )->updated();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display notice about the CAPTCHA preview.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
protected function notice() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin' );
|
||||
|
||||
if (
|
||||
! wpforms_is_admin_page( 'settings', self::VIEW ) ||
|
||||
! $this->is_captcha_preview_ready()
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
Notice::info( esc_html__( 'A preview of your CAPTCHA is displayed below. Please view to verify the CAPTCHA settings are correct.', 'wpforms-lite' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue assets for the CAPTCHA settings page.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
public function enqueues() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::enqueues()' );
|
||||
|
||||
( new Page() )->enqueues();
|
||||
}
|
||||
|
||||
/**
|
||||
* Use the CAPTCHA no-conflict mode.
|
||||
*
|
||||
* When enabled in the WPForms settings, forcefully remove all other
|
||||
* CAPTCHA enqueues to prevent conflicts. Filter can be used to target
|
||||
* specific pages, etc.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*/
|
||||
public function apply_noconflict() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin', 'WPForms\Admin\Settings\Captcha\Page::apply_noconflict()' );
|
||||
|
||||
( new Page() )->apply_noconflict();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if CAPTCHA config is ready to display a preview.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function is_captcha_preview_ready() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin' );
|
||||
|
||||
return (
|
||||
( 'hcaptcha' === $this->settings['provider'] || ( 'recaptcha' === $this->settings['provider'] && 'v2' === $this->settings['recaptcha_type'] ) ) &&
|
||||
! empty( $this->settings['site_key'] ) &&
|
||||
! empty( $this->settings['secret_key'] )
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the CAPTCHA provider API URL.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_api_url() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin' );
|
||||
|
||||
$api_url = '';
|
||||
|
||||
if ( $this->settings['provider'] === 'hcaptcha' ) {
|
||||
$api_url = self::HCAPTCHA_API_URL;
|
||||
}
|
||||
|
||||
if ( $this->settings['provider'] === 'recaptcha' ) {
|
||||
$api_url = self::RECAPTCHA_API_URL;
|
||||
}
|
||||
|
||||
if ( ! empty( $api_url ) ) {
|
||||
$api_url = add_query_arg( $this->get_api_url_query_arg(), $api_url );
|
||||
}
|
||||
|
||||
return apply_filters( 'wpforms_admin_settings_captcha_get_api_url', $api_url, $this->settings );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve query arguments for the CAPTCHA API URL.
|
||||
*
|
||||
* @since 1.6.4
|
||||
* @deprecated 1.8.0
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function get_api_url_query_arg() {
|
||||
|
||||
_deprecated_function( __METHOD__, '1.8.0 of the WPForms plugin' );
|
||||
|
||||
return (array) apply_filters(
|
||||
'wpforms_admin_settings_captcha_get_api_url_query_arg', // phpcs:ignore WPForms.Comments.PHPDocHooks.RequiredHookDocumentation, WPForms.PHP.ValidateHooks.InvalidHookName
|
||||
[
|
||||
'onload' => 'wpformsSettingsCaptchaLoad',
|
||||
'render' => 'explicit',
|
||||
],
|
||||
$this->settings
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user