'
. esc_html( $amount ) . '';
} else {
echo self::get_abandoned_cta_link( $status ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
/**
* Get abandoned status
*
* @param mixed $module Module or form id.
*
* @return string Status.
*/
public static function get_abandoned_status( $module ) {
// Check if abandonment feature is disabled globally.
if ( forminator_form_abandonment_disabled() ) {
return 'disabled';
}
static $status = null;
if ( ! is_null( $status ) ) {
return $status;
}
if ( is_numeric( $module ) ) {
$model = Forminator_Form_Model::model()->load( $module );
} else {
$model = $module['model'];
}
if ( self::is_feature_enabled( $model ) ) {
return 'active';
}
if ( self::is_plugin_active() ) {
return 'inactive';
} elseif ( Forminator_Hub_Connector::hub_connector_connected() || FORMINATOR_PRO ) {
$status = 'not_installed';
} else {
$status = 'not_connected';
}
return $status;
}
/**
* Get abandoned CTA link
*
* @param string $status Status.
* @param string $referral Page referral.
*
* @return string CTA link.
*/
public static function get_abandoned_cta_link( $status, $referral = '' ) {
switch ( $status ) {
case 'inactive':
$cta = '' . esc_html__( 'Inactive', 'forminator' ) . '';
break;
case 'not_installed':
$cta = ''
. ' '
. esc_html__( 'Get Add-on', 'forminator' ) . '';
break;
case 'not_connected':
if ( empty( $referral ) ) {
$referral = self::get_referral();
}
$referral = $referral ? '&page_referral=' . $referral : '';
$url = admin_url( 'admin.php?page=forminator-addons&forminator_open_addon=' . Forminator_Admin_Addons_Page::EXTENSION_PACK_PID . $referral );
$cta = ''
. ' '
. esc_html__( 'Unlock with Free Plan', 'forminator' ) . '';
break;
default:
$cta = '';
break;
}
return $cta;
}
/**
* Get referral
*
* @return string Referral.
*/
public static function get_referral() {
$page = filter_input( INPUT_GET, 'page' );
switch ( $page ) {
case 'forminator-cform-wizard':
return 'form_builder';
case 'forminator-cform':
return 'forms_page';
case 'forminator-reports':
return 'report_page';
default:
return '';
}
}
/**
* Check if plugin is active
*
* @return bool
*/
public static function is_plugin_active() {
return class_exists( 'Forminator_Extension_Pack' );
}
/**
* Check if the feature is enabled
*
* @param array $module Module.
* @return bool
*/
public static function is_feature_enabled( $module ) {
// Check if abandonment feature is disabled globally.
if ( forminator_form_abandonment_disabled() ) {
return false;
}
return self::is_plugin_active() && ! empty( $module->settings['abandonment'] );
}
}