示例#1
0
function memberful_wp_cron_sync_settings()
{
    set_time_limit(0);
    echo "<pre>library=memberful_wp method=memberful_wp_cron_sync_settings at=start\n</pre>";
    $new_settings = array('oauth' => array('website' => home_url(), 'redirect_uri' => memberful_wp_oauth_callback_url()), 'webhook' => array('url' => memberful_wp_webhook_url()));
    memberful_wp_put_data_to_api_as_json(memberful_wp_update_plugin_settings_on_memberful_url(), $new_settings);
    echo "<pre>library=memberful_wp method=memberful_wp_cron_sync_settings at=finish\n</pre>";
}
示例#2
0
/**
 * Attempts to get the necessary details from memberful and set them
 * using the wordpress settings API
 *
 * @param $code string The activation code
 */
function memberful_wp_activate($code)
{
    $params = array('requirements' => array('oauth', 'api_key', 'webhook'), 'activation_code' => trim($code), 'app_name' => trim(memberful_wp_site_name()), 'oauth_redirect_url' => memberful_wp_oauth_callback_url(), 'webhook_url' => memberful_wp_webhook_url());
    $response = memberful_wp_post_data_to_api_as_json(memberful_activation_url(), $params);
    if (is_wp_error($response)) {
        return new WP_Error('memberful_activation_request_error', "We had trouble connecting to Memberful, please email info@memberful.com. ({$response->get_error_message()})");
    }
    $response_code = (int) wp_remote_retrieve_response_code($response);
    $response_body = wp_remote_retrieve_body($response);
    if (404 === $response_code) {
        return new WP_Error('memberful_activation_code_invalid', "It looks like your activation code is wrong. Please try again, and if this keeps happening email us at info@memberful.com.");
    }
    if ($response_code !== 200 || empty($response_body)) {
        return new WP_Error('memberful_activation_fail', "We couldn't connect to Memberful, please email info@memberful.com");
    }
    $credentials = json_decode($response_body);
    update_option('memberful_client_id', $credentials->oauth->identifier);
    update_option('memberful_client_secret', $credentials->oauth->secret);
    update_option('memberful_api_key', $credentials->api_key->key);
    update_option('memberful_site', $credentials->site);
    update_option('memberful_webhook_secret', $credentials->webhook->secret);
    // Ideally we'd modify the activation payload to send this info, but it's easier to do this "short-term".
    memberful_wp_send_site_options_to_memberful();
    return TRUE;
}