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' );
}

For any other queries, write to us at https://funnelkit.com/support/