{"id":208763,"date":"2024-10-17T00:40:27","date_gmt":"2024-10-17T00:40:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/add-on-for-zoom-registration-and-gravity-forms\/"},"modified":"2026-02-21T22:14:49","modified_gmt":"2026-02-21T22:14:49","slug":"gravity-zwr","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/gravity-zwr\/","author":20566778,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.5.3","stable_tag":"1.5.3","tested":"6.8.5","requires":"5.9","requires_php":"8.0","requires_plugins":null,"header_name":"Add-On for Zoom Registration and Gravity Forms","header_author":"PluginRx","header_description":"Register attendees in your Zoom Webinar or Zoom Meeting through a Gravity Form","assets_banners_color":"907197","last_updated":"2026-02-21 22:14:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pluginrx.com\/plugin\/gravity-zwr\/","header_author_uri":"https:\/\/pluginrx.com\/","rating":5,"author_block_rating":0,"active_installs":80,"downloads":2736,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.2":{"tag":"1.3.2","author":"apos37","date":"2024-10-17 00:39:59"},"1.3.3.1":{"tag":"1.3.3.1","author":"apos37","date":"2024-10-22 17:04:12"},"1.3.4":{"tag":"1.3.4","author":"apos37","date":"2024-12-09 18:50:05"},"1.3.4.1":{"tag":"1.3.4.1","author":"apos37","date":"2025-03-17 14:53:32"},"1.3.5":{"tag":"1.3.5","author":"apos37","date":"2025-03-27 15:34:56"},"1.4.0":{"tag":"1.4.0","author":"apos37","date":"2025-04-07 14:30:43"},"1.4.1":{"tag":"1.4.1","author":"apos37","date":"2025-05-30 16:30:52"},"1.5.0":{"tag":"1.5.0","author":"apos37","date":"2025-06-02 21:02:56"},"1.5.1":{"tag":"1.5.1","author":"apos37","date":"2025-09-09 14:25:33"},"1.5.3":{"tag":"1.5.3","author":"apos37","date":"2026-02-21 22:14:49"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3170387,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3170387,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3170387,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3170387,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.2","1.3.3.1","1.3.4","1.3.4.1","1.3.5","1.4.0","1.4.1","1.5.0","1.5.1","1.5.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3170387,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3170387,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3170387,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3170387,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Plugin settings","2":"Form feed settings","3":"Entry note on successful registration","4":"Entry note on failed registration"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1655,1763,603,10939,853],"plugin_category":[40,58],"plugin_contributors":[213848,131885],"plugin_business_model":[],"class_list":["post-208763","plugin","type-plugin","status-publish","hentry","plugin_tags-gravity-forms","plugin_tags-meeting","plugin_tags-registration","plugin_tags-webinar","plugin_tags-zoom","plugin_category-calendar-and-events","plugin_category-user-management","plugin_contributors-apos37","plugin_contributors-michaelbourne","plugin_committers-apos37","plugin_support_reps-aristocles"],"banners":{"banner":"https:\/\/ps.w.org\/gravity-zwr\/assets\/banner-772x250.png?rev=3170387","banner_2x":"https:\/\/ps.w.org\/gravity-zwr\/assets\/banner-1544x500.png?rev=3170387","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gravity-zwr\/assets\/icon-128x128.png?rev=3170387","icon_2x":"https:\/\/ps.w.org\/gravity-zwr\/assets\/icon-256x256.png?rev=3170387","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gravity-zwr\/assets\/screenshot-1.png?rev=3170387","caption":"Plugin settings"},{"src":"https:\/\/ps.w.org\/gravity-zwr\/assets\/screenshot-2.png?rev=3170387","caption":"Form feed settings"},{"src":"https:\/\/ps.w.org\/gravity-zwr\/assets\/screenshot-3.png?rev=3170387","caption":"Entry note on successful registration"},{"src":"https:\/\/ps.w.org\/gravity-zwr\/assets\/screenshot-4.png?rev=3170387","caption":"Entry note on failed registration"}],"raw_content":"<!--section=description-->\n<p>This plugin adds a \"Zoom Registration\" feed to your Gravity Forms. Although it was created specifically for the Webinars feature on Zoom, it will also work with regular Meetings.<\/p>\n\n<p>Updated to work with Server-to-server OAuth.<\/p>\n\n<p>Originally developed by Michael Bourne as \"<a href=\"https:\/\/github.com\/michaelbourne\/gravity-forms-zoom-webinar-registration\">Gravity Forms Zoom Webinar Registration<\/a>.\" This is the same plugin modified for release on the WP Plugin Repository. We had to change the name per guidelines.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ol>\n<li>A WordPress.org based website<\/li>\n<li>The <a href=\"https:\/\/www.gravityforms.com\/\">Gravity Forms<\/a> plugin<\/li>\n<li>A <a href=\"https:\/\/zoom.us\/\">Zoom<\/a> account, Pro plan or higher<\/li>\n<li>Recommended: the <a href=\"https:\/\/zoom.us\/webinar\">Webinar add-on<\/a> for your Zoom account<\/li>\n<li>A <a href=\"https:\/\/marketplace.zoom.us\/docs\/guides\/build\/server-to-server-oauth-app\/\">Server-to-Server OAuth Application<\/a> created for your own Zoom account<\/li>\n<li>WordPress version 5+<\/li>\n<li>PHP version 8.0+<\/li>\n<\/ol>\n\n<h3>Third-Party Services<\/h3>\n\n<p>This plugin integrates with the Zoom API to facilitate registration for webinars and meetings. By using this plugin, you acknowledge that certain data will be transmitted to Zoom in order to create and manage webinar registrants.<\/p>\n\n<p><strong>Circumstances Under Which Data is Sent:<\/strong>\nWhen a user submits a registration form, the plugin sends the registrant's information (e.g., name, email) to Zoom to create a new registrant for the specified webinar or meeting.<\/p>\n\n<p><strong>Links:<\/strong>\n \u2022 <strong>Zoom API Documentation<\/strong>: <a href=\"https:\/\/developers.zoom.us\/docs\/api\/\">Zoom API Documentation<\/a>\n \u2022 <strong>Zoom Privacy Policy<\/strong>: <a href=\"https:\/\/www.zoom.com\/en\/trust\/privacy\/\">Zoom Privacy Policy<\/a>\n \u2022 <strong>Zoom Terms of Service<\/strong>: <a href=\"https:\/\/www.zoom.com\/en\/trust\/terms\/\">Zoom Terms of Service<\/a><\/p>\n\n<p>For any concerns regarding data transmission and processing, please refer to the links above to understand how your information is handled by Zoom.<\/p>\n\n<h3>Usage<\/h3>\n\n<ol>\n<li>After installation, go to <strong>Gravity Forms &gt; Settings &gt; Zoom Webinar<\/strong>. Enter your <a href=\"https:\/\/marketplace.zoom.us\/docs\/guides\/build\/server-to-server-oauth-app\/\">Server OAuth App<\/a> Account ID, Client ID, and Client Secret. These apps are free to create, take only 5 minutes, and don't need to be published. Fill in all three fields and hit Save.<\/li>\n<li>Follow the directions on the Zoom API docs carefully. You\u2019ll need to edit roles in Zoom settings and create the app. Your user role and app must have the <code>meeting:write:admin<\/code> and <code>webinar:write:admin<\/code> scopes. If you are having issues, you may need to add the following scopes: <code>meeting:write:registrant:admin<\/code> and <code>meeting:read:list_meetings:admin<\/code>.<\/li>\n<li>Ensure the Server-to-Server OAuth App in Zoom is <em>active<\/em> before using this addon.<\/li>\n<li>For the form you'd like to use for registrations, go to <strong>Settings &gt; Zoom Webinar<\/strong>. Add a new feed, give it a name, choose the meeting type, enter your Meeting ID, and match registration fields accordingly. First name, last name, and email are required fields.<\/li>\n<li>Enable registrations on your meeting if using that instead of webinars.<\/li>\n<\/ol>\n\n<p><em>We strongly encourage enabling logging in Gravity Forms settings when testing this add-on.<\/em><\/p>\n\n<h3>Constants<\/h3>\n\n<p>By default, this plugin will ask for your Account ID, Client ID &amp; Secret in the Gravity Forms settings. Users wanting more control can specify these as constants: <code>GRAVITYZWR_ACCOUNT_ID<\/code>, <code>GRAVITYZWR_CLIENT_ID<\/code>, and <code>GRAVITYZWR_CLIENT_SECRET<\/code>.<\/p>\n\n<h3>Payments<\/h3>\n\n<p>This add-on supports delayed payment through the Gravity Forms PayPal add-on. Charge for registrations via PayPal, processing the Zoom Registration feed only upon successful payment. <a href=\"https:\/\/docs.gravityforms.com\/setting-up-paypal-payments-standard\/\">Read more here.<\/a><\/p>\n\n<h3>Migrating from Old Plugin<\/h3>\n\n<p>This plugin uses the same text domain as the other one by Michael Bourne, so all of the settings and webinar feeds that you previously set up will remain. All you need to do is install and activate this plugin while the other one is activated. No need to set everything up again. :)<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from your website's plugin directory, or upload the plugin to your plugins folder. <\/li>\n<li>Activate it.<\/li>\n<li>Go to <strong>Gravity Forms &gt; Settings &gt; Zoom Webinar<\/strong>.<\/li>\n<li>Optional: save and import the <code>gravity-forms-zoom-registration-sample-form.json<\/code> file as a starter form. All required and optional registration fields are included.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20events%20or%20sessions%3F\"><h3>Does this work with Events or Sessions?<\/h3><\/dt>\n<dd><p>At this time, compatibility with Zoom Events or Zoom Sessions has not been confirmed. As this is a free plugin with no revenue model, investing in an additional Zoom plan solely for testing isn\u2019t feasible at the moment.<\/p><\/dd>\n<dt id=\"can%20i%20use%20one%20form%20for%20multiple%20zoom%20webinars%3F\"><h3>Can I use one form for multiple Zoom webinars?<\/h3><\/dt>\n<dd><p>Yes, you can use a single Gravity Form to handle registrations for multiple Zoom webinars by creating a separate feed for each webinar. Each feed can be triggered conditionally based on a form field value. There are two common ways to manage this:\n \u2022 <strong>Dropdown Field<\/strong>: Add a visible dropdown field to the form listing available webinars. Each feed is configured to run only when a specific option is selected.\n \u2022 <strong>Hidden Field<\/strong>: Use a hidden field (e.g., webinar_id) that is dynamically populated\u2014such as via a URL parameter or post meta\u2014based on the page the form is displayed on. Each feed uses this value to determine which webinar to register for.<\/p>\n\n<p>This allows you to reuse the same form without needing to create a new one for each webinar.<\/p><\/dd>\n<dt id=\"the%20registration%20did%20not%20go%20through%2C%20what%20happened%3F\"><h3>The registration did not go through, what happened?<\/h3><\/dt>\n<dd><p>There could be several reasons. You can check for an error in the entry details notes, which should give you a good indication of what happened. Some common reasons include:\n \u2022 You didn't actually set up the plugin or a webinar\/meeting feed\n \u2022 The Account ID, Client ID, and\/or Client Secret are incorrect\n \u2022 Incorrect scopes set\n \u2022 A field is required on your Zoom registration form but not mapped on the plugin feed\n \u2022 The webinar or meeting with the ID you entered does not exist\n \u2022 The feed is set to a webinar when it should be a meeting or vice versa\n \u2022 The webinar\/meeting host can not register\n \u2022 User's email cannot register for the same webinar\/meeting more than 3 times in 24 hours<\/p><\/dd>\n<dt id=\"how%20do%20i%20retrieve%20the%20join%20link%20url%20after%20registration%3F\"><h3>How do I retrieve the join link URL after registration?<\/h3><\/dt>\n<dd><p>A Join Link field has been added to the Zoom Webinar feed registation fields section. If you want the join link to populate into a hidden field on the entry, then just choose the field you want from your form.<\/p><\/dd>\n<dt id=\"how%20do%20i%20map%20custom%20questions%3F\"><h3>How do I map custom questions?<\/h3><\/dt>\n<dd><p>You can map custom questions to your Zoom registration by using a simple code snippet in your website\u2019s theme. This allows you to include additional fields beyond the default ones. To do this, you\u2019ll need to add a small piece of code to your theme\u2019s <code>functions.php<\/code> file. In the example below, we\u2019re adding a custom question called \u201cReferral Source.\u201d The <strong>name<\/strong> in the code must exactly match the field name used in your Zoom registration. Once this is added, the \u201cReferral Source\u201d field will be included in your Gravity Forms Zoom Webinar feed settings. Here\u2019s the code you need to add:<\/p>\n\n<pre><code>add_filter( 'gravityzwr_registration_fields', function( $fields ) {  \n    $fields[ 'referral_source' ] = [  \n        'type'     =&gt; 'string',  \n        'name'     =&gt; 'Referral Source',  \n        'required' =&gt; false,  \n    ];  \n    return $fields;  \n} );\n<\/code><\/pre><\/dd>\n<dt id=\"where%20can%20i%20request%20features%20and%20get%20further%20support%3F\"><h3>Where can I request features and get further support?<\/h3><\/dt>\n<dd><p>We recommend using our <a href=\"https:\/\/pluginrx.com\/support\/plugin\/gravity-zwr\/\">website support forum<\/a> as the primary method for requesting features and getting help. You can also reach out via our <a href=\"https:\/\/discord.gg\/3HnzNEJVnR\">Discord support server<\/a> or the <a href=\"https:\/\/wordpress.org\/support\/plugin\/gravity-zwr\/\">WordPress.org support forum<\/a>, but please note that WordPress.org doesn\u2019t always notify us of new posts, so it\u2019s not ideal for time-sensitive issues.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Update: Added support for dynamic populate of webinar ID on feed using a merge tag - example: {:field_id} (props Prometric for suggestion)<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Update: Added optional occurrence ID (props @sflwa)<\/li>\n<li>Fix: Undefined variables when missing OAuth credentials<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Update: Added an action hook after successful registration (props @codegeekatx)<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Update: New support links<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Update: Updated author name and website again per WordPress trademark policy<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Update: Added support for join link to be populated into an entry field (feature request by venzee)<\/li>\n<li>Update: Added support for custom questions with <code>gravityzwr_registration_fields<\/code> hook (feature request by lsterling03)<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Update: Changed author name from Apos37 to WordPress Enhanced, new Author URI<\/li>\n<li>Tweak: Optimization<\/li>\n<\/ul>\n\n<h4>1.3.4.1<\/h4>\n\n<ul>\n<li>Update: Add additional scopes to readme<\/li>\n<li>Fix: Fatal error on get_body(); update error when there is no response body (reported by nathwl)<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Update: Added default meeting type field to plugin settings (props @sflwa for suggestion)<\/li>\n<\/ul>\n\n<h4>1.3.3.1<\/h4>\n\n<ul>\n<li>Fix: Address country not working on webinars (reported by peter_04347)<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Initial release to WP Plugin Repository<\/li>\n<li>Update: Added a note for when it is successful as well<\/li>\n<li>Update: Updated error note to include only the body code and message instead of the whole array<\/li>\n<li>Update: Added optional form json file to settings page for easy download<\/li>\n<li>Tweak: Change form settings icon<\/li>\n<li>Tweak: Changed name due to WP repo and GF guidelines<\/li>\n<li>Fix: IDs from settings not caching causing a bad request<\/li>\n<\/ul>","raw_excerpt":"Register attendees in your Zoom Webinar or Zoom Meeting through a Gravity Form.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/208763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=208763"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/apos37"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=208763"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=208763"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=208763"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=208763"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=208763"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=208763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}