get_setting( 'url' ); if ( ! $url ) { $cta_args = apply_filters( 'popup_maker/cta_valid_url_args', [ 'cta', 'pid' ] ); // Strip query args and use the current page. $url = remove_query_arg( $cta_args ); } $call_to_action->track_conversion( $extra_args ); \PopupMaker\safe_redirect( $url ); exit; } /** * Array of options for this CTA. * * @return array */ public function fields(): array { return [ 'general' => [ 'url' => [ 'type' => 'url', 'label' => __( 'Link URL', 'popup-maker' ), 'placeholder' => __( 'https://example.com', 'popup-maker' ), 'priority' => 1.2, 'required' => true, 'dependencies' => [ 'type' => 'link', ], 'std' => '', ], ], ]; } /** * Validate CTA settings array before saving. * * @param array $settings The raw settings array to validate. * * @return true|\WP_Error|\WP_Error[] True if valid, WP_Error if validation fails. */ public function validate_settings( array $settings ) { if ( empty( $settings['url'] ) ) { return new \WP_Error( 'missing_url', __( 'URL is required', 'popup-maker' ), [ 'field' => 'url', ] ); } return true; } }