/home/arranoyd/eventrify/wp-content/plugins/content-protector/src/admin/class-ps-admin.php
<?php
namespace passster;
class PS_Admin
{
/**
* Setup the passster admin area
*
* @return void
*/
public static function init()
{
$admin_notice = get_option( 'passster_admin_notice_shown' );
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'add_admin_scripts' ) );
$general_settings = wp_parse_args( get_option( 'passster_general_settings' ), self::get_defaults( 'passster_general_settings' ) );
if ( 'on' === $general_settings['toggle_beaver_builder'] ) {
if ( in_array( 'beaver-builder-lite-version/fl-builder.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) || in_array( 'bb-plugin/fl-builder.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
require_once PASSSTER_PATH . '/src/pagebuilder/beaverbuilder/class-ps-beaver-loader.php';
}
}
if ( 'on' === $general_settings['toggle_elementor'] ) {
if ( did_action( 'elementor/loaded' ) ) {
require_once PASSSTER_ABSPATH . 'src/pagebuilder/elementor/class-ps-elementor.php';
}
}
/* activate cookie if ajax disabled */
if ( 'on' === $general_settings['toggle_ajax'] ) {
$general_settings['toggle_cookie'] = 'on';
update_option( 'passster_general_settings', $general_settings );
}
$settings = new PS_Settings();
$is_pro = 'premium';
$settings->add_section( array(
'id' => 'passster_general_settings',
'title' => __( 'Options', 'content-protector' ),
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_advanced_cookie_title',
'type' => 'title',
'name' => '<h3>' . __( 'Cookie', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'toggle_cookie',
'type' => 'toggle',
'default' => 'on',
'name' => __( 'Use Cookie', 'content-protector' ),
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_cookie_duration',
'type' => 'number',
'name' => __( 'Cookie Duration', 'content-protector' ),
'desc' => __( 'Duration (in days) for your cookie. Once a cookie expires, the user will have to enter the password again.', 'content-protector' ),
'default' => '2',
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_advanced_compatibility_mode',
'type' => 'title',
'name' => '<h3>' . __( 'Compatibility Mode', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'toggle_ajax',
'type' => 'toggle',
'default' => 'off',
'name' => __( 'Reload after successful validation', 'content-protector' ),
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_advanced_amp_title',
'type' => 'title',
'name' => '<h3>' . __( 'AMP', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'toggle_amp',
'type' => 'toggle',
'default' => 'off',
'name' => __( 'Activate AMP Support', 'content-protector' ),
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_advanced_third_party_title',
'type' => 'title',
'name' => '<h3>' . __( 'Third-Party Support', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'toggle_vc',
'type' => 'toggle',
'default' => 'off',
'name' => __( 'Activate WPBakery Pagebuilder', 'content-protector' ),
'premium' => $is_pro,
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'toggle_elementor',
'type' => 'toggle',
'default' => 'off',
'name' => __( 'Activate Elementor', 'content-protector' ),
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'third_party_shortcodes',
'type' => 'textarea',
'name' => __( 'Third-Party Shortcodes', 'content-protector' ),
'desc' => __( 'Add a comma separated list of shortcodes you want to use inside of Passster. Make sure to add the exact shortcode, in case of Contact Form 7 e.x: [contact-form-7 id="44" title="Contact form 1"]. An Example entry could be: [shortcode-1],[shortcode-2],[shortcode-3].<br><b>Only needed if you use use ajax for verification</b>. ', 'content-protector' ),
) );
/*
$settings->add_field(
'passster_general_settings',
array(
'id' => 'toggle_beaver_builder',
'type' => 'toggle',
'default' => 'on',
'name' => __( 'Activate Beaver Builder', 'content-protector' ),
)
);
*/
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_advanced_delete_title',
'type' => 'title',
'name' => '<h3>' . __( 'Uninstall', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_general_settings', array(
'id' => 'passster_advanced_delete_options',
'type' => 'checkbox',
'name' => __( 'Delete Plugin Options On Uninstall', 'content-protector' ),
'desc' => __( 'If checked, all plugin options will be deleted if the plugin is unstalled.', 'content-protector' ),
) );
$settings->add_section( array(
'id' => 'passster_advanced_settings',
'title' => __( 'External Services', 'content-protector' ),
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_recaptcha_title',
'type' => 'title',
'name' => '<h3>' . __( 'Google Recaptcha', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_recaptcha_type',
'type' => 'select',
'name' => __( 'Recaptcha Version', 'content-protector' ),
'options' => array(
'v3' => 'V3 (invisible Captcha)',
'v2' => 'V2 (Checkbox)',
),
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_recaptcha_site_key',
'type' => 'text',
'name' => __( 'Site Key', 'content-protector' ),
'desc' => __( 'Add your Google ReCaptcha Site Key', 'content-protector' ),
'premium' => $is_pro,
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_recaptcha_secret',
'type' => 'text',
'name' => __( 'Secret', 'content-protector' ),
'desc' => __( 'Add your Google ReCaptcha Secret', 'content-protector' ),
'premium' => $is_pro,
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_recaptcha_language',
'type' => 'text',
'name' => __( 'Language', 'content-protector' ),
'desc' => __( 'Add your language shortcode. For example "en" for english or "de" for german. ', 'content-protector' ),
'default' => 'en',
'premium' => $is_pro,
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_bitly_title',
'type' => 'title',
'name' => '<h3>' . __( 'Bitly', 'content-protector' ) . '</h3>',
) );
$settings->add_field( 'passster_advanced_settings', array(
'id' => 'passster_bitly_access_key',
'type' => 'text',
'name' => __( 'Bitly Access Token', 'content-protector' ),
'desc' => __( 'Add your bitly access token. You can get one here: <a target="_blank" href="https://bitly.com/">bitly.com</a>', 'content-protector' ),
'premium' => $is_pro,
) );
}
/**
* Add admin assets
*
* @return void
*/
public static function add_admin_scripts()
{
$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min' );
wp_enqueue_style(
'passster-admin-css',
PASSSTER_URL . '/assets/admin/passster-admin.css',
'1.0',
'all'
);
wp_enqueue_script(
'passster-admin-js',
PASSSTER_URL . '/assets/admin/passster-admin' . $suffix . '.js',
array( 'jquery' ),
'1.0',
false
);
wp_localize_script( 'passster-admin-js', 'ps_admin_ajax', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
) );
}
/**
* Register post type "password lists"
*
* @return void
*/
public static function register_password_lists()
{
}
/**
* Set column headers filr filr post type
*
* @param array $columns array of columns.
* @return array
*/
public static function set_columns( $columns )
{
}
/**
* Add content to registered columns for filr post type.
*
* @param string $column name of the column.
* @param int $post_id current id.
* @return void
*/
public static function set_columns_content( $column, $post_id )
{
}
/**
* Return default based on option name.
*
* @param string $option_name name of the option.
* @return array
*/
public static function get_defaults( $option_name )
{
switch ( $option_name ) {
case 'passster_general_settings':
$settings = array(
'toggle_cookie' => 'on',
'toggle_ajax' => 'off',
'passster_cookie_duration' => 2,
'toggle_amp' => 'off',
'toggle_vc' => 'off',
'toggle_elementor' => 'off',
'toggle_beaver_builder' => 'off',
'passster_advanced_delete_options' => 'off',
);
return $settings;
break;
case 'passster_advanced_settings':
$settings = array(
'passster_recaptcha_site_key' => '',
'passster_recaptcha_type' => 'v3',
'passster_recaptcha_secret' => '',
'passster_recaptcha_language' => '',
'passster_bitly_access_key' => '',
);
return $settings;
break;
}
}
}