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