Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 54 |
|
0.00% |
0 / 6 |
CRAP | n/a |
0 / 0 |
|
| jpcrm_sniff_feature_givewp | |
0.00% |
0 / 9 |
|
0.00% |
0 / 1 |
2 | |||
| jpcrm_register_free_extension_givewp | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
| jpcrm_register_external_sources_givewp | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
| zeroBSCRM_extension_install_givewp | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
12 | |||
| zeroBSCRM_extension_uninstall_givewp | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| jpcrm_load_givewp | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 | |||
| 1 | <?php |
| 2 | defined( 'ZEROBSCRM_PATH' ) || exit( 0 ); |
| 3 | |
| 4 | /** |
| 5 | * This file registers the GiveWP module with core; it's pretty convoluted, |
| 6 | * but that's due to a legacy init setup. The goal here is to have all |
| 7 | * needed code self-contained in the module's folder. |
| 8 | * |
| 9 | * If the module is enabled, it is loaded with the jpcrm_load_modules hook |
| 10 | */ |
| 11 | |
| 12 | global $zbs; |
| 13 | $zbs->urls['kb_givewp'] = 'https://kb.jetpackcrm.com/knowledge-base/givewp-connector-for-jetpack-crm/'; |
| 14 | |
| 15 | // adds a feature that we can sniff for |
| 16 | function jpcrm_sniff_feature_givewp() { |
| 17 | global $zbs; |
| 18 | $zbs->feature_sniffer->sniff_for_plugin( |
| 19 | array( |
| 20 | 'feature_slug' => 'givewp', |
| 21 | 'plugin_slug' => 'give/give.php', |
| 22 | 'more_info_link' => $zbs->urls['kb_givewp'], |
| 23 | 'is_module' => true, |
| 24 | ) |
| 25 | ); |
| 26 | } |
| 27 | add_action( 'jpcrm_sniff_features', 'jpcrm_sniff_feature_givewp' ); |
| 28 | |
| 29 | // registers a GiveWP as a core extension |
| 30 | function jpcrm_register_free_extension_givewp( $exts ) { |
| 31 | $exts['givewp'] = array( |
| 32 | 'name' => __( 'GiveWP Connector', 'zero-bs-crm' ), |
| 33 | 'i' => 'givewp.png', |
| 34 | 'short_desc' => __( 'Capture donations into your CRM.', 'zero-bs-crm' ), |
| 35 | ); |
| 36 | return $exts; |
| 37 | } |
| 38 | add_filter( 'jpcrm_register_free_extensions', 'jpcrm_register_free_extension_givewp' ); |
| 39 | |
| 40 | // registers a GiveWP as an external source |
| 41 | function jpcrm_register_external_sources_givewp( $external_sources ) { |
| 42 | $external_sources['givewp'] = array( |
| 43 | 'GiveWP', |
| 44 | 'ico' => 'fa-wpforms', |
| 45 | ); |
| 46 | return $external_sources; |
| 47 | } |
| 48 | add_filter( 'jpcrm_register_external_sources', 'jpcrm_register_external_sources_givewp' ); |
| 49 | |
| 50 | global $zeroBSCRM_extensionsCompleteList; |
| 51 | $zeroBSCRM_extensionsCompleteList['givewp'] = array( |
| 52 | 'fallbackname' => __( 'GiveWP Connector', 'zero-bs-crm' ), |
| 53 | 'imgstr' => '<i class="fa fa-keyboard-o" aria-hidden="true"></i>', |
| 54 | 'desc' => __( 'Capture donations in your CRM', 'zero-bs-crm' ), |
| 55 | // 'url' => 'https://jetpackcrm.com/feature/', |
| 56 | 'colour' => 'rgb(126, 88, 232)', |
| 57 | 'helpurl' => 'https://kb.jetpackcrm.com/knowledge-base/givewp/', |
| 58 | 'shortname' => __( 'GiveWP Connector', 'zero-bs-crm' ), // used where long name won't fit |
| 59 | |
| 60 | ); |
| 61 | |
| 62 | global $jpcrm_core_extension_setting_map; |
| 63 | $jpcrm_core_extension_setting_map['givewp'] = 'feat_givewp'; |
| 64 | |
| 65 | // adds install/uninstall functions |
| 66 | function zeroBSCRM_extension_install_givewp() { |
| 67 | $is_installed = jpcrm_install_core_extension( 'givewp' ); |
| 68 | if ( $is_installed ) { |
| 69 | |
| 70 | global $zbs; |
| 71 | |
| 72 | // add donor contact status if it doesn't exist |
| 73 | $status_to_add = __( 'Donor', 'zero-bs-crm' ); |
| 74 | |
| 75 | $customised_fields_settings = $zbs->settings->get( 'customisedfields' ); |
| 76 | $contact_statuses = explode( ',', $customised_fields_settings['customers']['status'][1] ); |
| 77 | if ( ! in_array( $status_to_add, $contact_statuses ) ) { |
| 78 | $contact_statuses[] = $status_to_add; |
| 79 | } |
| 80 | $customised_fields_settings['customers']['status'][1] = implode( ',', $contact_statuses ); |
| 81 | $zbs->settings->update( 'customisedfields', $customised_fields_settings ); |
| 82 | |
| 83 | } |
| 84 | |
| 85 | return $is_installed; |
| 86 | } |
| 87 | function zeroBSCRM_extension_uninstall_givewp() { |
| 88 | return jpcrm_uninstall_core_extension( 'givewp' ); |
| 89 | } |
| 90 | |
| 91 | // load the JPCRM_GiveWP class if feature is enabled |
| 92 | function jpcrm_load_givewp() { |
| 93 | global $zbs; |
| 94 | if ( zeroBSCRM_isExtensionInstalled( 'givewp' ) ) { |
| 95 | require_once JPCRM_MODULES_PATH . 'givewp/class-jpcrm-givewp.php'; |
| 96 | // $zbs->givewp = new JPCRM_GiveWP; |
| 97 | $zbs->modules->load_module( 'givewp', 'JPCRM_GiveWP' ); |
| 98 | } |
| 99 | } |
| 100 | add_action( 'jpcrm_load_modules', 'jpcrm_load_givewp' ); |