forked from LiveCarta/LiveCartaWP
69 lines
1.3 KiB
PHP
69 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* Module for WordPress users handling
|
|
*/
|
|
|
|
|
|
add_action( 'profile_update', 'flamingo_user_profile_update', 10, 1 );
|
|
add_action( 'user_register', 'flamingo_user_profile_update', 10, 1 );
|
|
|
|
/**
|
|
* Creates a Flamingo_Contact record for the given user.
|
|
*/
|
|
function flamingo_user_profile_update( $user_id ) {
|
|
$user = new WP_User( $user_id );
|
|
|
|
$email = $user->user_email;
|
|
$name = $user->display_name;
|
|
|
|
$props = array(
|
|
'first_name' => $user->first_name,
|
|
'last_name' => $user->last_name,
|
|
);
|
|
|
|
if ( ! empty( $email ) ) {
|
|
Flamingo_Contact::add( array(
|
|
'email' => $email,
|
|
'name' => $name,
|
|
'props' => $props,
|
|
'channel' => 'user',
|
|
) );
|
|
}
|
|
}
|
|
|
|
|
|
add_action( 'activate_' . FLAMINGO_PLUGIN_BASENAME,
|
|
'flamingo_collect_contacts_from_users',
|
|
10, 0
|
|
);
|
|
|
|
/**
|
|
* Creates Flamingo_Contact records for existing users.
|
|
*/
|
|
function flamingo_collect_contacts_from_users() {
|
|
$users = get_users( array(
|
|
'number' => 20,
|
|
) );
|
|
|
|
foreach ( $users as $user ) {
|
|
$email = $user->user_email;
|
|
$name = $user->display_name;
|
|
|
|
if ( empty( $email ) ) {
|
|
continue;
|
|
}
|
|
|
|
$props = array(
|
|
'first_name' => empty( $user->first_name ) ? '' : $user->first_name,
|
|
'last_name' => empty( $user->last_name ) ? '' : $user->last_name,
|
|
);
|
|
|
|
Flamingo_Contact::add( array(
|
|
'email' => $email,
|
|
'name' => $name,
|
|
'props' => $props,
|
|
'channel' => 'user',
|
|
) );
|
|
}
|
|
}
|