File Editor
Directories:
.. (Back)
Files:
ButtonWidget.php
Widget.php
Create New File
Create
Edit File: ButtonWidget.php
<?php /** * Elementor Widget class. * * @since 2.2.0 * * @package OMAPI * @author Justin Sternberg */ use Elementor\Plugin; use Elementor\Widget_Button; use Elementor\Controls_Manager; /** * OptinMonster widget for Elementor page builder. * * @since 2.2.0 */ class OMAPI_Elementor_ButtonWidget extends Widget_Button { /** * Register button widget controls. * * Adds different input fields to allow the user to change and customize the widget settings. * * @since 1.0.0 * @access protected */ protected function register_controls() { parent::register_controls(); $campaigns = OMAPI::get_instance()->blocks->get_campaign_options( true ); $campaigns = ! empty( $campaigns['other'] ) ? array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['other'] ) : array( '' => 'N/A' ); $this->add_control( 'om_button_campaign_id', array( 'label' => esc_html__( 'Click to Load Popup', 'optin-monster-api' ), 'type' => Controls_Manager::SELECT, 'frontend_available' => true, 'label_block' => true, 'options' => $campaigns, 'default' => '', ), array( 'position' => array( 'type' => 'control', 'of' => 'link', ), ) ); $link_control = $this->get_controls( 'link' ); $link_control['condition'] = array( 'om_button_campaign_id' => '', ); $this->add_control( 'link', $link_control, array( 'overwrite' => true, ) ); } /** * Render button widget output in the editor. * * Written as a Backbone JavaScript template and used to generate the live preview. * * @since 2.9.0 * @access protected */ protected function content_template() { ?> <# if ( settings.om_button_campaign_id ) { settings.link = settings.link || {} settings.link.url = '<?php echo esc_url_raw( OPTINMONSTER_SHAREABLE_LINK ); ?>/c/' + settings.om_button_campaign_id + '/'; settings.link.is_external = 'on'; settings.link.nofollow = false; settings.link.custom_attributes = 'rel|noopener noreferrer'; } #> <?php return parent::content_template(); } /** * Get active settings. * * Retrieve the settings from all the active controls. * * @since 1.4.0 * @since 2.1.0 Added the `controls` and the `settings` parameters. * @access public * * @param array $settings Optional. Controls settings. Default is null. * @param array $controls Optional. An array of controls. Default is null. * * @return array Active settings. */ public function get_active_settings( $settings = null, $controls = null ) { $settings = parent::get_active_settings( $settings, $controls ); if ( ! empty( $settings['om_button_campaign_id'] ) ) { $settings['link'] = ! empty( $settings['link'] ) ? $settings['link'] : array(); $settings['link'] = wp_parse_args( array( 'url' => OPTINMONSTER_SHAREABLE_LINK . '/c/' . sanitize_text_field( $settings['om_button_campaign_id'] ) . '/', 'is_external' => 'on', 'nofollow' => false, 'custom_attributes' => 'rel|noopener noreferrer', ), $settings['link'] ); } return $settings; } }
Save Changes
Rename File
Rename