diff options
Diffstat (limited to 'plugins/jetpack/3rd-party/class-jetpack-crm-data.php')
-rw-r--r-- | plugins/jetpack/3rd-party/class-jetpack-crm-data.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/plugins/jetpack/3rd-party/class-jetpack-crm-data.php b/plugins/jetpack/3rd-party/class-jetpack-crm-data.php new file mode 100644 index 00000000..21c01ce5 --- /dev/null +++ b/plugins/jetpack/3rd-party/class-jetpack-crm-data.php @@ -0,0 +1,77 @@ +<?php +/** + * Compatibility functions for the Jetpack CRM plugin. + * + * @since 9.0.0 + * + * @package automattic/jetpack + */ + +namespace Automattic\Jetpack; + +/** + * Provides Jetpack CRM plugin data. + */ +class Jetpack_CRM_Data { + + const JETPACK_CRM_PLUGIN_SLUG = 'zero-bs-crm/ZeroBSCRM.php'; + + /** + * Provides Jetpack CRM plugin data for use in the Contact Form block sidebar menu. + * + * @return array An array containing the Jetpack CRM plugin data. + */ + public function get_crm_data() { + jetpack_require_lib( 'plugins' ); + $plugins = \Jetpack_Plugins::get_plugins(); + + // Set default values. + $response = array( + 'crm_installed' => false, + 'crm_active' => false, + 'crm_version' => null, + 'jp_form_ext_enabled' => null, + 'can_install_crm' => false, + 'can_activate_crm' => false, + 'can_activate_extension' => false, + ); + + if ( isset( $plugins[ self::JETPACK_CRM_PLUGIN_SLUG ] ) ) { + $response['crm_installed'] = true; + + $crm_data = $plugins[ self::JETPACK_CRM_PLUGIN_SLUG ]; + + $response['crm_active'] = $crm_data['active']; + $response['crm_version'] = $crm_data['Version']; + + if ( $response['crm_active'] ) { + if ( function_exists( 'zeroBSCRM_isExtensionInstalled' ) ) { + $response['jp_form_ext_enabled'] = zeroBSCRM_isExtensionInstalled( 'jetpackforms' ); + } + } + } + + $response['can_install_crm'] = $response['crm_installed'] ? false : current_user_can( 'install_plugins' ); + $response['can_activate_crm'] = $response['crm_active'] ? false : current_user_can( 'activate_plugins' ); + + if ( $response['crm_active'] && function_exists( 'zeroBSCRM_extension_install_jetpackforms' ) ) { + $response['can_activate_extension'] = current_user_can( 'admin_zerobs_manage_options' ); + } + + return $response; + } + + /** + * Activates Jetpack CRM's Jetpack Forms extension. This is used by a button in the Jetpack Contact Form + * sidebar menu. + * + * @return true|WP_Error Returns true if activation is success, else returns a WP_Error object. + */ + public function activate_crm_jetpackforms_extension() { + if ( function_exists( 'zeroBSCRM_extension_install_jetpackforms' ) ) { + return zeroBSCRM_extension_install_jetpackforms(); + } + + return new WP_Error( 'jp_forms_extension_activation_failed', esc_html__( 'The Jetpack Forms extension could not be activated.', 'jetpack' ) ); + } +} |