Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 54
0.00% covered (danger)
0.00%
0 / 6
CRAP
n/a
0 / 0
jpcrm_sniff_feature_givewp
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
jpcrm_register_free_extension_givewp
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
jpcrm_register_external_sources_givewp
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
zeroBSCRM_extension_install_givewp
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
12
zeroBSCRM_extension_uninstall_givewp
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
jpcrm_load_givewp
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2defined( '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
12global $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
16function 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}
27add_action( 'jpcrm_sniff_features', 'jpcrm_sniff_feature_givewp' );
28
29// registers a GiveWP as a core extension
30function 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}
38add_filter( 'jpcrm_register_free_extensions', 'jpcrm_register_free_extension_givewp' );
39
40// registers a GiveWP as an external source
41function jpcrm_register_external_sources_givewp( $external_sources ) {
42    $external_sources['givewp'] = array(
43        'GiveWP',
44        'ico' => 'fa-wpforms',
45    );
46    return $external_sources;
47}
48add_filter( 'jpcrm_register_external_sources', 'jpcrm_register_external_sources_givewp' );
49
50global $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
62global $jpcrm_core_extension_setting_map;
63$jpcrm_core_extension_setting_map['givewp'] = 'feat_givewp';
64
65// adds install/uninstall functions
66function 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}
87function zeroBSCRM_extension_uninstall_givewp() {
88    return jpcrm_uninstall_core_extension( 'givewp' );
89}
90
91// load the JPCRM_GiveWP class if feature is enabled
92function 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}
100add_action( 'jpcrm_load_modules', 'jpcrm_load_givewp' );