File Editor
Directories:
.. (Back)
EasyDigitalDownloads
Elementor
Integrations
MemberPress
Plugins
Promos
Rules
Shortcodes
WPForms
WooCommerce
Files:
Actions.php
Ajax.php
Api.php
ApiAuth.php
ApiKey.php
AssetLoader.php
BaseRestApi.php
Blocks.php
ClassicEditor.php
ConstantContact.php
Debug.php
EasyDigitalDownloads.php
Elementor.php
Inserter.php
InstallSkin.php
InstallSkinCompat.php
MailPoet.php
MemberPress.php
Menu.php
Notifications.php
OmuApi.php
Output.php
Pages.php
Partners.php
Plugins.php
Promos.php
Refresh.php
RestApi.php
RevenueAttribution.php
Review.php
Rules.php
Save.php
Shortcode.php
Sites.php
Support.php
Type.php
Urls.php
Utils.php
Validate.php
WPForms.php
Welcome.php
Widget.php
WooCommerce.php
WpErrorException.php
Create New File
Create
Edit File: Widget.php
<?php /** * Widget class. * * @since 1.0.0 * * @package OMAPI * @author Thomas Griffin */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Widget class. * * @since 1.0.0 */ class OMAPI_Widget extends WP_Widget { /** * Holds the class object. * * @since 1.0.0 * * @var object */ public static $instance; /** * Path to the file. * * @since 1.0.0 * * @var string */ public $file = __FILE__; /** * Holds the base class object. * * @since 1.0.0 * * @var object */ public $base; /** * Constructor. Sets up and creates the widget with appropriate settings. * * @since 1.0.0 */ public function __construct() { // Load the base class object. $this->base = OMAPI::get_instance(); $widget_ops = apply_filters( 'optin_monster_api_widget_ops', array( 'classname' => 'optin-monster-api', 'description' => esc_html__( 'Place an OptinMonster campaign into a widgetized area.', 'optin-monster-api' ), ) ); $control_ops = apply_filters( 'optin_monster_api_widget_control_ops', array( 'id_base' => 'optin-monster-api', 'height' => 350, 'width' => 225, ) ); parent::__construct( 'optin-monster-api', apply_filters( 'optin_monster_api_widget_name', esc_html__( 'OptinMonster', 'optin-monster-api' ) ), $widget_ops, $control_ops ); } /** * Outputs the widget within the widgetized area. * * @since 1.0.0 * * @param array $args The default widget arguments. * @param array $instance The input settings for the current widget instance. * * @return void */ public function widget( $args, $instance ) { $title = apply_filters( 'widget_title', isset( $instance['title'] ) ? $instance['title'] : '' ); $optin_id = isset( $instance['optin_monster_id'] ) ? $instance['optin_monster_id'] : 0; do_action( 'optin_monster_api_widget_before_output', $args, $instance ); echo $args['before_widget']; do_action( 'optin_monster_api_widget_before_title', $args, $instance ); // If a title exists, output it. if ( $title ) { echo $args['before_title'] . $title . $args['after_title']; } do_action( 'optin_monster_api_widget_before_optin', $args, $instance ); // If a optin has been selected, output it. if ( $optin_id ) { // Grab the optin object. If it does not exist, return early. $optin = absint( $optin_id ) ? $this->base->get_optin( $optin_id ) : $this->base->get_optin_by_slug( $optin_id ); if ( ! $optin ) { return; } // If in test mode but not logged in, skip over the optin. $test = (bool) get_post_meta( $optin->ID, '_omapi_test', true ); if ( $test && ! is_user_logged_in() ) { return; } // Load the optin. optin_monster( $optin->ID, 'id', array( 'followrules' => ! empty( $instance['followrules'] ) ? 'true' : 'false', ) ); } do_action( 'optin_monster_api_widget_after_optin', $args, $instance ); echo $args['after_widget']; do_action( 'optin_monster_api_widget_after_output', $args, $instance ); } /** * Sanitizes and updates the widget. * * @since 1.0.0 * * @param array $new_instance The new input settings for the current widget instance. * @param array $old_instance The old input settings for the current widget instance. * * @return array */ public function update( $new_instance, $old_instance ) { // Set $instance to the old instance in case no new settings have been updated for a particular field. $instance = $old_instance; // Sanitize user inputs. $instance['title'] = trim( $new_instance['title'] ); $instance['followrules'] = ! empty( $new_instance['followrules'] ); $instance['optin_monster_id'] = absint( $new_instance['optin_monster_id'] ); return apply_filters( 'optin_monster_api_widget_update_instance', $instance, $new_instance ); } /** * Outputs the widget form where the user can specify settings. * * @since 1.0.0 * * @param array $instance The input settings for the current widget instance. * * @return void */ public function form( $instance ) { // Get all available optins and widget properties. $optins = $this->base->get_optins(); $title = isset( $instance['title'] ) ? $instance['title'] : ''; $followrules = ! empty( $instance['followrules'] ); $optin_id = isset( $instance['optin_monster_id'] ) ? $instance['optin_monster_id'] : false; do_action( 'optin_monster_api_widget_before_form', $instance ); ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'optin-monster-api' ); ?></label> <input id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" style="width: 100%;" /> </p> <?php do_action( 'optin_monster_api_widget_middle_form', $instance ); ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'optin_monster_id' ) ); ?>"><?php esc_html_e( 'Campaign', 'optin-monster-api' ); ?></label> <select id="<?php echo esc_attr( $this->get_field_id( 'optin_monster_id' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'optin_monster_id' ) ); ?>" style="width: 100%;"> <?php if ( ! empty( $optins ) ) { foreach ( $optins as $optin ) { $type = get_post_meta( $optin->ID, '_omapi_type', true ); $enabled = (bool) get_post_meta( $optin->ID, '_omapi_enabled', true ); // Only allow sidebar types. if ( 'sidebar' !== $type && 'inline' !== $type ) { continue; } // Display disabled or enabled selection. if ( $enabled ) { echo '<option value="' . esc_attr( $optin->ID ) . '"' . selected( $optin->ID, $optin_id, false ) . '>' . esc_html( $optin->post_title ) . '</option>'; } else { echo '<option value="' . esc_attr( $optin->ID ) . '" disabled="disabled"' . selected( $optin->ID, $optin_id, false ) . '>' . esc_html( $optin->post_title ) . ' (' . esc_html__( 'Not Enabled', 'optin-monster-api' ) . ')</option>'; } } } ?> </select> </p> <p> <input id="<?php echo esc_attr( $this->get_field_id( 'followrules' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'followrules' ) ); ?>" type="checkbox" value="1" <?php checked( $followrules ); ?> /> <label for="<?php echo esc_attr( $this->get_field_id( 'followrules' ) ); ?>"><?php esc_html_e( 'Apply Advanced Output Settings?', 'optin-monster-api' ); ?></label> </p> <?php do_action( 'optin_monster_api_widget_after_form', $instance ); } }
Save Changes
Rename File
Rename