* @copyright Copyright (c) 2024, Phi Phan */ namespace BoldBlocks; // Exit if accessed directly. defined( 'ABSPATH' ) || exit; if ( ! class_exists( FreemiusConfig::class ) ) : /** * The FreemiusConfig class. */ class FreemiusConfig extends CoreComponent { /** * The constructor */ public function __construct( $the_plugin_instance ) { parent::__construct( $the_plugin_instance ); } /** * Run main hooks * * @return void */ public function run() { // Add header left links. add_filter( 'content_blocks_builder_get_header_left_links', [ $this, 'header_links' ] ); // Add the settings page link to plugin list screen. add_filter( 'plugin_action_links_' . plugin_basename( BOLDBLOCKS_CBB_ROOT_FILE ), [ $this, 'plugin_settings_links' ] ); // Redirect to the getting started page. add_action( 'admin_init', [ $this, 'boldblocks_activation_redirect' ] ); } /** * Add freemius pages * * @param array $links * @return array */ public function header_links( $links ) { if ( cbb_fs()->is_not_paying() ) { $links[] = [ 'url' => 'https://contentblocksbuilder.com/pro/?utm_source=CBB+Free&utm_campaign=CBB+Upgrade&utm_medium=link&utm_content=header', 'title' => $this->get_premium_label(), 'target' => '_blank', 'icon' => ' ', 'class' => 'go-premium', ]; } else { $links[] = [ 'url' => 'https://contentblocksbuilder.com/?utm_source=CBB+Pro&utm_campaign=CBB+visit+site&utm_medium=link&utm_content=header', 'title' => __( 'Visit site', 'content-blocks-builder' ), 'target' => '_blank', 'icon' => ' ', 'class' => 'go-premium go-site', ]; } return $links; } /** * Add the premium link to the plugin admin screen. * * @param array $links * @return array */ public function plugin_settings_links( $links ) { $label = esc_html__( 'Settings', 'content-blocks-builder' ); $slug = 'cbb-settings'; array_unshift( $links, "{$label}" ); if ( cbb_fs()->is_not_paying() ) { $links[] = sprintf( '%2$s', 'https://contentblocksbuilder.com/pro/?utm_source=CBB+Free&utm_campaign=CBB+Upgrade&utm_medium=link&utm_content=action-link', $this->get_premium_label() ); } return $links; } /** * Redirect to the getting started page. * * @return void */ public function boldblocks_activation_redirect() { if ( ! cbb_fs()->is_activation_mode() ) { // Make sure it's the correct user. if ( ! wp_doing_ajax() && wp_get_current_user()->ID > 0 && intval( get_option( 'boldblocks_activation_redirect', false ) ) === wp_get_current_user()->ID ) { // Make sure we don't redirect again after this one. delete_option( 'boldblocks_activation_redirect' ); if ( ! is_network_admin() ) { wp_safe_redirect( admin_url( '/edit.php?post_type=boldblocks_block&page=cbb-settings&tab=getting-started' ) ); exit; } } } } /** * Get the labels * * @return string */ private function get_premium_label() { return __( 'Go Premium', 'content-blocks-builder' ); } } endif;