• File: Captcha.php
  • Full Path: /home/matthif/www/wp-content/plugins/wpforms-lite/src/Admin/Settings/Captcha.php
  • Date Modified: 02/16/2024 11:45 AM
  • File size: 5.61 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?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::infoesc_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
        
);
    }
}