Example #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);
     }
 }
Example #2
0
function memberful_wp_cron_sync_entities()
{
    set_time_limit(0);
    echo "<pre>library=memberful_wp method=memberful_wp_cron_sync_entities at=start\n</pre>";
    memberful_wp_sync_downloads();
    memberful_wp_sync_subscription_plans();
    echo "<pre>library=memberful_wp method=memberful_wp_cron_sync_entities at=finish\n</pre>";
}
Example #3
0
/**
 * Displays the memberful options page
 */
function memberful_wp_options()
{
    if (!function_exists('curl_version') || isset($_GET['curl_message'])) {
        return memberful_wp_render('curl_required');
    }
    if (!empty($_POST)) {
        if (!memberful_wp_valid_nonce('memberful_options')) {
            return;
        }
        if (isset($_POST['manual_sync'])) {
            if (is_wp_error($error = memberful_wp_sync_downloads())) {
                Memberful_Wp_Reporting::report($error, 'error');
                return wp_redirect(admin_url('options-general.php?page=memberful_options'));
            }
            if (is_wp_error($error = memberful_wp_sync_subscription_plans())) {
                Memberful_Wp_Reporting::report($error, 'error');
                return wp_redirect(admin_url('options-general.php?page=memberful_options'));
            }
            return wp_redirect(admin_url('options-general.php?page=memberful_options'));
        }
        if (isset($_POST['reset_plugin'])) {
            return memberful_wp_reset();
        }
    }
    if (!memberful_wp_is_connected_to_site()) {
        return memberful_wp_register();
    }
    if (!empty($_GET['subpage'])) {
        switch ($_GET['subpage']) {
            case 'bulk_protect':
                return memberful_wp_bulk_protect();
            case 'debug':
                return memberful_wp_debug();
            case 'advanced_settings':
                return memberful_wp_advanced_settings();
            case 'protect_bbpress':
                return memberful_wp_protect_bbpress();
            case 'private_user_feed_settings':
                return memberful_wp_private_rss_feed_settings();
        }
    }
    $products = get_option('memberful_products', array());
    $subs = get_option('memberful_subscriptions', array());
    memberful_wp_render('options', array('products' => $products, 'subscriptions' => $subs));
}