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