Automattic\WooCommerce\Admin

PluginsHelper::get_missing_subscription_notice()public staticWC 1.0

Get formatted notice information for missing subscription.

Method of the class: PluginsHelper{}

No Hooks.

Return

Array. notice information.

Usage

$result = PluginsHelper::get_missing_subscription_notice();

PluginsHelper::get_missing_subscription_notice() code WC 9.6.1

public static function get_missing_subscription_notice() {
	if ( ! WC_Helper::is_site_connected() ) {
		return array();
	}

	if ( self::$subscription_usage_notices_already_shown ) {
		return array();
	}

	if ( ! self::should_show_notice( self::DISMISS_MISSING_SUBS_NOTICE ) ) {
		return array();
	}

	$subscriptions         = WC_Helper::get_subscription_list_data();
	$missing_subscriptions = array_filter(
		$subscriptions,
		function ( $sub ) {
			return ( ! empty( $sub['local']['installed'] ) && empty( $sub['product_key'] ) );
		},
	);

	// Remove WUM from missing subscriptions list.
	$missing_subscriptions = array_filter(
		$missing_subscriptions,
		function ( $sub ) {
			return 'woo-update-manager' !== $sub['zip_slug'];
		}
	);

	if ( ! $missing_subscriptions ) {
		return array();
	}

	$total_missing_subscriptions = count( $missing_subscriptions );

	$notice_data = self::get_subscriptions_notice_data(
		$subscriptions,
		$missing_subscriptions,
		$total_missing_subscriptions,
		array(
			/* translators: 1) product name */
			'single_manage'           => __( 'You don\'t have a subscription for <strong>%1$s</strong>. Subscribe to receive updates and streamlined support.', 'woocommerce' ),
			/* translators: 1) total expired subscriptions */
			'different_subscriptions' => __( 'You don\'t have subscriptions for <strong>%1$s Woo extensions</strong>. Subscribe to receive updates and streamlined support.', 'woocommerce' ),
		),
		'missing',
	);

	$button_link = add_query_arg(
		array(
			'add-to-cart'  => $notice_data['product_ids'],
			'utm_source'   => 'pu',
			'utm_campaign' => 'pu_in_apps_screen_purchase',
		),
		self::WOO_CART_PAGE_URL
	);

	if ( in_array( $notice_data['type'], array( 'single_manage', 'multiple_manage' ), true ) ) {
		$button_link = add_query_arg(
			array(
				'add-to-cart' => $notice_data['product_id'],
			),
			$button_link
		);
	}

	$button_text = __( 'Subscribe', 'woocommerce' );

	return array(
		'description' => $notice_data['parsed_message'],
		'button_text' => $button_text,
		'button_link' => $button_link,
	);
}