HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux aritmodecarnaval.es 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/www/terrazasgreen2/wp-content/plugins/ninja-forms/includes/Admin/Menus/Licenses.php
<?php if ( ! defined( 'ABSPATH' ) ) exit;

/**
 * Class NF_Admin_Menus_Licenses
 */
final class NF_Admin_Menus_Licenses
{
    private $licenses = array();

    public function __construct()
    {
        add_action( 'admin_init', array( $this, 'register_licenses' ), 10 );
        add_action( 'admin_init', array( $this, 'submit_listener'   ), 11 );
        add_action( 'admin_init', array( $this, 'add_meta_boxes'    ), 12 );
    }

    public function submit_listener()
    {
        if( ! current_user_can( apply_filters( 'ninja_forms_admin_license_update_capabilities', 'manage_options' ) ) ) return;

        if( ! isset( $_POST[ 'ninja_forms_license' ] ) || ! $_POST[ 'ninja_forms_license' ] ) return;

        if ( ! wp_verify_nonce( $_POST[ 'ninja_forms_license' ][ 'nonce' ], $_POST[ 'ninja_forms_license' ][ 'name' ] . "-nonce" ) ) die( __( 'Security failed', 'ninja-forms' ) ); 

        $key    = sanitize_text_field( $_POST[ 'ninja_forms_license' ][ 'key' ]    );
        $name   = sanitize_text_field( $_POST[ 'ninja_forms_license' ][ 'name' ]   );
        $action = sanitize_text_field( $_POST[ 'ninja_forms_license' ][ 'action' ] );

        switch( $action ){
            case 'activate':
                $this->activate_license( $name, $key );
                break;
            case 'deactivate':
                $this->deactivate_license( $name );
                break;
        }
    }

    public function register_licenses()
    {
        $this->licenses = apply_filters( 'ninja_forms_settings_licenses_addons', array() );
    }

    public function add_meta_boxes()
    {
        add_meta_box(
            'nf_settings_licenses',
            esc_html__( 'Add-On Licenses', 'ninja-forms' ) . ' <a href="
            https://ninjaforms.com/docs/licensing/?utm_source=Ninja+Forms+Plugin&utm_medium=Settings&utm_campaign=Documentation&utm_content=Licensing+Documentation" target="_blank"><img src="' . Ninja_Forms::$url . 'assets/img/help_icon.png" alt="Documentation Link" width="35" height="35"></a>',
            array( $this, 'display' ),
            'nf_settings_licenses'
        );
    }

    public function display()
    {
        $data = array();
        foreach( $this->licenses as $license ){
            $data[] = array(
                'id' => $license->product_name,
                'name' => $license->product_nice_name,
                'version' => $license->version,
                'is_valid' => $license->is_valid(),
                'license' => $this->get_license( $license->product_name ),
                'error' => Ninja_Forms()->get_setting( $license->product_name . '_license_error' ),
            );
        }

        Ninja_Forms()->template( 'admin-menu-settings-licenses.html.php', array( 'licenses' => $data ) );
    }

    private function get_license( $name )
    {
        return Ninja_Forms()->get_setting( $name . '_license' );
    }

    private function activate_license( $name, $key )
    {
        foreach( $this->licenses as $license ){

            if( $name != $license->product_name ) continue;

            $license->activate_license( $key );
        }
    }

    private function deactivate_license( $name )
    {
        foreach( $this->licenses as $license ){

            if( $name != $license->product_name ) continue;

            $license->deactivate_license();
        }
    }

} // End Class NF_Admin_Menus_Licenses