Example #1
0
/**
 * @param $account
 * @param $mapping_context
 * @return WP_User
 */
function memberful_wp_sync_member_account($account, $mapping_context)
{
    $mapper = new Memberful_User_Map();
    $user = $mapper->map($account->member, $mapping_context);
    if (!is_wp_error($user)) {
        Memberful_Wp_User_Downloads::sync($user->ID, $account->products);
        Memberful_Wp_User_Subscriptions::sync($user->ID, $account->subscriptions);
        Memberful_Wp_User_Role_Decision::ensure_user_role_is_correct($user);
    } else {
        memberful_wp_record_error(array('error' => $user->get_error_messages(), 'code' => $user->get_error_code(), 'data' => $user->get_error_data()));
    }
    return $user;
}
Example #2
0
 /**
  * Gets the access token and refresh token from an authorization code
  *
  * @param string $auth_code The authorization code returned from OAuth endpoint
  * @return StdObject Access token and Refresh token
  */
 public function get_oauth_tokens($auth_code)
 {
     $params = array('client_id' => get_option('memberful_client_id'), 'client_secret' => get_option('memberful_client_secret'), 'grant_type' => 'authorization_code', 'code' => $auth_code);
     $response = memberful_wp_post_data_to_api_as_json(self::oauth_member_url('token'), $params);
     if (is_wp_error($response)) {
         memberful_wp_record_wp_error($response);
         return $this->_error('could_not_get_tokens', $response);
     }
     $body = json_decode($response['body']);
     $code = $response['response']['code'];
     if ($code != 200 || $body === NULL || empty($body->access_token)) {
         $payload = array('code' => 'oauth_access_fail', 'error' => 'Could not get access token from Memberful', 'response' => $response);
         memberful_wp_record_error($payload);
         return $this->_error($payload['code'], $payload['error']);
     }
     return json_decode($response['body']);
 }
Example #3
0
function memberful_wp_record_wp_error($wp_error)
{
    return memberful_wp_record_error(array('codes' => $wp_error->get_error_codes(), 'messages' => $wp_error->get_error_messages(), 'data' => $wp_error->get_error_data()));
}