SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | function healthexcel_wpf_infusionsoft_tag_staff_members() { | |
3 | ||
4 | if ( empty( $_REQUEST['contactId'] ) ) { | |
5 | return false; | |
6 | // wp_die( '<h3>Error</h3>Referring Practitioner Contact ID not provided! Aborting.', 'Error', 500 ); | |
7 | } else if ( empty( $_REQUEST['isTagId'] ) ) { | |
8 | return false; | |
9 | // wp_die( '<h3>Error</h3>Target Tag ID not provided! Aborting.', 'Error', 500 ); | |
10 | } | |
11 | ||
12 | $app = tboc_healthexcel_isdk_api(); | |
13 | if ( is_wp_error( $app ) ) { | |
14 | return; | |
15 | } | |
16 | $practitioner_contact_id = (int) $_REQUEST['contactId']; | |
17 | ||
18 | // Search for contacts with Referring Practitioner field value equal to contactId value | |
19 | $returnFields = array('Id'); | |
20 | $staffMembers = $app->dsFind( | |
21 | 'Contact', // table | |
22 | 1, // limit | |
23 | 0, // page | |
24 | '_ReferringPractitioner', // fieldName | |
25 | $practitioner_contact_id, // fieldValue | |
26 | $returnFields // returnFields | |
27 | ); | |
28 | ||
29 | // Check do we have success array with contacts from IS? | |
30 | if ( empty( $staffMembers ) ) { | |
31 | return true; | |
32 | // wp_die( '<h3>Nothing to do!</h3>No staff members registered by this practitioner. Aborting.', 'OK', 200 ); | |
33 | } | |
34 | ||
35 | // Extract staff member contactId | |
36 | $contact_id = (int) $staffMembers[0]['Id']; | |
37 | ||
38 | // Extract IS Tag ID's | |
39 | $is_tag_id = $_REQUEST['isTagId']; | |
40 | $tag_ids = explode(',', $is_tag_id); | |
41 | ||
42 | - | // Apply IS tag(s) |
42 | + | // Get WordPress user ID |
43 | - | $ret = wp_fusion()->crm->apply_tags( $tag_ids, $contact_id ); |
43 | + | $user_id = wp_fusion()->user->get_user_id( $contact_id ); |
44 | ||
45 | - | if ( true === $ret ) { |
45 | + | // If no matching user found apply tags directly in Infusionsoft |
46 | if( $user_id == false ) { | |
47 | ||
48 | $ret = wp_fusion()->crm->apply_tags( $tag_ids, $contact_id ); | |
49 | ||
50 | } else { | |
51 | ||
52 | $ret = wp_fusion()->user->apply_tags( $tag_ids, $user_id ); | |
53 | ||
54 | } | |
55 | ||
56 | if ( is_wp_error( $ret ) || $ret == false ) { | |
57 | error_log('Error performing request'); | |
58 | error_log(print_r($ret, true)); | |
59 | } | |
60 | ||
61 | wp_die(); | |
62 | ||
63 | } // END function healthexcel_wpf_infusionsoft_tag_staff_members() { | |
64 | add_action( 'wp_ajax_nopriv_wpf_tag_staff_members', 'healthexcel_wpf_infusionsoft_tag_staff_members' ); |