Exemple #1
0
 public function process(array $request_params, array $server_params)
 {
     $member_id = NULL;
     $payload = json_decode($this->raw_request_body());
     if (strpos($payload->event, 'order') !== FALSE) {
         $member_id = (int) $payload->order->member->id;
         echo 'Processing order webhook for member ' . $member_id;
     } elseif (strpos($payload->event, 'member') !== FALSE) {
         $member_id = (int) $payload->member->id;
         echo 'Processing member webhook for member ' . $member_id;
     } elseif (strpos($payload->event, 'subscription.') !== FALSE) {
         $member_id = (int) $payload->subscription->member->id;
         echo 'Processing subscription webhook for member ' . $member_id;
     } elseif (strpos($payload->event, 'subscription_plan') !== FALSE) {
         memberful_wp_sync_subscription_plans();
         echo 'Syncing subscription plans';
     } elseif (strpos($payload->event, 'download') !== FALSE) {
         memberful_wp_sync_downloads();
         echo 'Syncing downloads';
     } else {
         echo 'Ignoring webhook';
     }
     if ($member_id !== NULL) {
         memberful_wp_sync_member_from_memberful($member_id);
     }
 }
Exemple #2
0
function memberful_wp_cron_sync_users()
{
    set_time_limit(0);
    $members_to_sync = Memberful_User_Mapping_Repository::fetch_ids_of_members_that_need_syncing();
    $mapper = new Memberful_User_Map();
    echo "<pre>library=memberful_wp fn=memberful_wp_cron_sync_users at=start members=" . count($members_to_sync) . "\n</pre>";
    foreach ($members_to_sync as $member_id) {
        memberful_wp_sync_member_from_memberful($member_id);
        sleep(1);
    }
    echo "<pre>library=memberful_wp method=memberful_wp_cron_sync_users at=finish\n</pre>";
}
 public function confirm_verification($user, $nonce)
 {
     if ($user->has_prop(self::NONCE_META_KEY)) {
         $potential_mapping = $user->get(self::NONCE_META_KEY);
         if ($potential_mapping['member']->email === $user->user_email && $nonce === $potential_mapping['nonce']) {
             delete_user_meta($user->ID, self::NONCE_META_KEY);
             $potential_mapping['context']['user_verified_they_want_to_sync_accounts'] = TRUE;
             $potential_mapping['context']['id_of_user_who_has_verified_the_sync_link'] = (int) $user->ID;
             return memberful_wp_sync_member_from_memberful($potential_mapping['member']->id, $potential_mapping['context']);
         }
     }
     return new WP_Error("could_not_verify_sync_link", "We could not verify that this user wanted to link their accounts together");
 }