PHP API - xlplugins/autonami GitHub Wiki
PHP functions to interact with Autonami CRM Contact
Autonami Pro plugin is required. Add code in the beginning.
/**
* Autonami Pro plugin is required
*/
if ( ! class_exists( 'BWFCRM_Contact' ) ) {
return;
}
Create Autonami Contact class instance
/**
* Contact class object
*/
$contact_obj = BWF_Contacts::get_instance();
Get Contact
/** By Email */
$email_id = '[email protected]';
$contact = $contact_obj->get_contact_by( 'email', $email_id );
/** By WP User ID */
$wp_id = 1;
$contact = $contact_obj->get_contact_by( 'wpid', $wp_id );
/** By CRM Contact ID */
$contact_id = 1;
$contact = $contact_obj->get_contact_by( 'id', $contact_id );
If new contact i.e. doesn't exist
if ( 0 === $contact->get_id() ) {
/** New contact */
! empty( $email ) && $contact->set_email( $email );
! empty( $first_name ) && $contact->set_f_name( $first_name );
! empty( $last_name ) && $contact->set_l_name( $last_name );
! empty( $country ) && $contact->set_country( $country ); // 2 digit iso code
! empty( $state ) && $contact->set_state( $state );
! empty( $contact_no ) && $contact->set_contact_no( $contact_no );
! empty( $timezone ) && $contact->set_timezone( $timezone );
! empty( $wp_id ) && $contact->set_wpid( absint( $wp_id ) );
/**
* Contact status
* 0 - Unverified
* 1 - Subscribed
* 2 - Bounced
*/
isset( $status ) && $contact->set_status( absint( $status ) );
! empty( $creation_date ) ? $contact->set_creation_date( $creation_date ) : $contact->set_creation_date( date( 'Y-m-d H:i:s' ) );
/** Save contact */
$contact->save();
}
If Contact already exists
if ( absint( $contact->get_id() ) > 0 ) {
/** Contact already exists */
/** Fetching contact basic properties */
$id = $contact->get_id(); // Contact ID
$first_name = $contact->get_f_name(); // Contact First Name
$last_name = $contact->get_l_name(); // Contact Last Name
$email = $contact->get_email(); // Contact Email
$phone_number = $contact->get_contact_no(); // Contact Number
$country = $contact->get_country(); // Contact Country - 2 digit ISO code
$state = $contact->get_state(); // Contact State
}
Create a CRM Contact Object.
/**
* Can be used to get or update tags lists
* Unsubscribe Contact and many other things
* Get or Update the custom field value
*/
/** Passing Contact object as argument */
$crm_contact = new BWFCRM_Contact( $contact );
/** Passing Email as argument */
$crm_contact = new BWFCRM_Contact( $email );
/** Passing Contact ID as argument */
$crm_contact = new BWFCRM_Contact( $contact_id );
Contact Tags
/**
* Get Contact Tags
*/
$crm_contact->get_tags();
/**
* Add tags to a contact
*/
$tags = [
[ 'id' => 81 ],
[ 'id' => 82 ]
];
$assigned_tags = $crm_contact->add_tags( $tags );
/**
* Remove Tags from a Contact
*/
$tags = [ 81, 82 ];
$removed_tags = $crm_contact->remove_tags( $tags );
$crm_contact->save();
Contact Lists
/**
* Get Contact Lists
*/
$crm_contact->get_lists();
/**
* Assign Lists to a Contact
*/
$lists = [
[ 'id' => 30 ],
[ 'id' => 35 ],
[ 'id' => 36 ]
];
$assigned_lists = $crm_contact->add_lists( $lists );
/**
* Remove Lists from a Contact
*/
$lists = [ 30, 35, 36 ];
$removed_lists = $crm_contact->remove_lists( $lists );
$crm_contact->save();
Update contact fields
/**
* Update contact field
*/
$crm_contact->set_field_by_slug( 'address-1', 'address 1 comes here' );
$crm_contact->set_field_by_slug( 'address-2', 'address 2 comes here' );
$crm_contact->set_field_by_slug( 'city', 'New York' );
$crm_contact->set_field_by_slug( 'postcode', '10001' );
$crm_contact->set_field_by_slug( 'company', 'Company Name' );
$crm_contact->set_field_by_slug( 'gender', 'Male' );
$crm_contact->set_field_by_slug( 'dob', '1990-01-07' );
$crm_contact->save_fields();
Unsubscribe Contact
/**
* Unsubscribe Contact
*/
$crm_contact->unsubscribe();
Get contact status
/**
* Get contact status
* 1 - Subscribed, 2 - Unsubscribed, 3 - Unverified, 4 - Bounced
*/
$crm_contact->get_display_status();
Get all Tags
/**
* Get all Tags
*/
$all_tags = BWFCRM_Tag::get_tags();
/**
* Output
[0] => Array (
[ID] => 1
[name] => Tag Name
[type] => 1
[created_at] => 2021-07-25 04:54:08
[updated_at] =>
[data] =>
)
*/
Get all Lists
/**
* Get all Lists
*/
$all_lists = BWFCRM_Lists::get_lists();
/**
* Output
[0] => Array (
[ID] => 1
[name] => List Name
[type] => 2
[created_at] => 2021-07-25 04:54:08
[updated_at] =>
[data] =>
)
*/
Get all custom fields
/**
* Get all custom fields
*/
$all_fields = BWFCRM_Fields::get_custom_fields( 1, 1 );
/**
* Output
[1] => Array (
[group_id] => 1
[ID] => 1
[name] => Field Name
[type] => 1
[meta] => Array
(
)
[created_at] => 2021-02-01 11:56:45
[slug] => new-field
)
*/
Fetch Contacts
/**
* Fetch Contacts by Tag(s)
*/
$data = [
'tags_any' => [ 30 ]
];
$contacts = BWFCRM_Contact::get_contacts( '', '', '', $data );
/**
* Fetch Contacts by List(s)
*/
$data = [
'lists_any' => [ 30 ]
];
$contacts = BWFCRM_Contact::get_contacts( '', '', '', $data );
/**
* Fetch Contacts by Audience(s) id or name
*/
if ( version_compare( BWFAN_PRO_VERSION, '2.0.5', '>=' ) ) {
$contacts = BWFCRM_Contact::get_contacts_by_audience( 'audience1' );
}