{"id":3996,"date":"2008-11-05T18:51:15","date_gmt":"2008-11-05T18:51:15","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/what-would-seth-godin-do\/"},"modified":"2026-03-03T15:23:31","modified_gmt":"2026-03-03T15:23:31","slug":"what-would-seth-godin-do","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/what-would-seth-godin-do\/","author":6015438,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.0","stable_tag":"2.2.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"What Would Seth Godin Do","header_author":"James Hunt","header_description":"","assets_banners_color":"ffa333","last_updated":"2026-03-03 15:23:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.thetwopercent.co.uk","rating":4.8,"author_block_rating":0,"active_installs":1000,"downloads":221551,"num_ratings":10,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"richardkmiller","date":"2008-11-18 00:56:46"},"1.3":{"tag":"1.3","author":"richardkmiller","date":"2009-04-18 21:27:46"},"1.4":{"tag":"1.4","author":"richardkmiller","date":"2009-02-11 06:48:27"},"1.5":{"tag":"1.5","author":"richardkmiller","date":"2008-11-05 18:56:43"},"1.6":{"tag":"1.6","author":"richardkmiller","date":"2008-11-18 01:10:46"},"1.7":{"tag":"1.7","author":"richardkmiller","date":"2009-04-07 22:49:18"},"1.7.1":{"tag":"1.7.1","author":"richardkmiller","date":"2010-07-05 21:47:38"},"1.7.3":{"tag":"1.7.3","author":"richardkmiller","date":"2011-06-04 18:43:25"},"2.0":{"tag":"2.0","author":"richardkmiller","date":"2011-06-05 02:07:25"},"2.0.1":{"tag":"2.0.1","author":"richardkmiller","date":"2011-06-05 02:26:24"},"2.0.2":{"tag":"2.0.2","author":"richardkmiller","date":"2011-07-10 01:15:21"},"2.0.3":{"tag":"2.0.3","author":"richardkmiller","date":"2011-08-21 00:55:16"},"2.0.4":{"tag":"2.0.4","author":"richardkmiller","date":"2012-06-19 14:26:47"},"2.0.5":{"tag":"2.0.5","author":"richardkmiller","date":"2015-04-20 23:14:42"},"2.0.6":{"tag":"2.0.6","author":"richardkmiller","date":"2020-05-05 02:20:55"},"2.1.0":{"tag":"2.1.0","author":"richardkmiller","date":"2022-01-04 15:57:58"},"2.1.1":{"tag":"2.1.1","author":"richardkmiller","date":"2022-06-07 23:10:08"},"2.1.2":{"tag":"2.1.2","author":"richardkmiller","date":"2024-11-16 22:11:59"},"2.1.3":{"tag":"2.1.3","author":"richardkmiller","date":"2025-12-15 20:19:35"},"2.1.4":{"tag":"2.1.4","author":"richardkmiller","date":"2025-12-15 20:37:36"},"2.1.5":{"tag":"2.1.5","author":"richardkmiller","date":"2025-12-15 20:51:21"},"2.1.6":{"tag":"2.1.6","author":"richardkmiller","date":"2025-12-15 20:55:28"},"2.1.7":{"tag":"2.1.7","author":"richardkmiller","date":"2025-12-15 20:58:44"},"2.1.8":{"tag":"2.1.8","author":"richardkmiller","date":"2025-12-15 21:25:46"},"2.2.0":{"tag":"2.2.0","author":"bonkerz","date":"2026-03-03 15:23:31"}},"upgrade_notice":{"2.2.0":"<p>Refactored to a modern class-based architecture. Settings and behaviour are unchanged. No action required after upgrading.<\/p>"},"ratings":{"1":0,"2":0,"3":"1","4":0,"5":"9"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3473799,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3473799,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3473799,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3473806,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3473806,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3473806,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"preferredVersions\":{\"php\":\"8.4\",\"wp\":\"latest\"},\"login\":true,\"landingPage\":\"\\\/hello-world\\\/\",\"steps\":[{\"step\":\"installTheme\",\"themeData\":{\"resource\":\"wordpress.org\\\/themes\",\"slug\":\"twentytwentyfour\"},\"options\":{\"activate\":true,\"importStarterContent\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"what-would-seth-godin-do\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"WWSGD Demo\",\"blogdescription\":\"What Would Seth Godin Do\",\"permalink_structure\":\"\\\/%postname%\\\/\"}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\n$home = get_option( 'home' );\\n$settings = array(\\n\\t'new_visitor_message' => 'Welcome first time visitor! We write daily blog articles about life, work and everything inbetween. We would love to hear from you in the comments.',\\n\\t'return_visitor_message' => '<p>It looks like you like our posts! Why not subscribe to our <a href=\\\"' . esc_url( $home ) . '\\\/feed\\\/\\\">RSS feed<\\\/a>.<\\\/p>',\\n\\t'message_location'       => 'before_post',\\n\\t'include_pages'          => 'yes',\\n\\t'repetition'             => '1',\\n\\t'wwsgd_exclude_ids'      => '',\\n);\\nupdate_option( 'wwsgd_settings', $settings );\\nwp_insert_post( array( 'post_title' => 'Hello World', 'post_content' => 'This is a sample post. The What Would Seth Godin Do plugin shows a message above or below this content for new vs. return visitors.', 'post_status' => 'publish', 'post_author' => 1 ) );\\nwp_insert_post( array( 'post_title' => 'Another Post', 'post_content' => 'A second post so the blog has more content. Visit the home page to see the plugin message in the loop.', 'post_status' => 'publish', 'post_author' => 1 ) );\\nwp_insert_post( array( 'post_title' => 'About This Demo', 'post_content' => 'This Playground demonstrates the WWSGD plugin: new visitors see a welcome message; return visitors see a different message.', 'post_status' => 'publish', 'post_author' => 1 ) );\\n\"}]}"}},"all_blocks":[],"tagged_versions":["1.0","1.3","1.4","1.5","1.6","1.7","1.7.1","1.7.3","2.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3473799,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3473799,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"What Would Seth Godin Do - Settings Page.","2":"What Would Seth Godin Do - Frontend display of message."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[456,10685,871,1517,17426],"plugin_category":[55],"plugin_contributors":[201780,79836],"plugin_business_model":[],"class_list":["post-3996","plugin","type-plugin","status-publish","hentry","plugin_tags-marketing","plugin_tags-personalization","plugin_tags-visitors","plugin_tags-welcome","plugin_tags-welcome-message","plugin_category-seo-and-marketing","plugin_contributors-bonkerz","plugin_contributors-richardkmiller","plugin_committers-bonkerz"],"banners":{"banner":"https:\/\/ps.w.org\/what-would-seth-godin-do\/assets\/banner-772x250.png?rev=3473806","banner_2x":"https:\/\/ps.w.org\/what-would-seth-godin-do\/assets\/banner-1544x500.png?rev=3473806","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/what-would-seth-godin-do\/assets\/icon.svg?rev=3473799","icon":"https:\/\/ps.w.org\/what-would-seth-godin-do\/assets\/icon.svg?rev=3473799","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/what-would-seth-godin-do\/assets\/screenshot-1.png?rev=3473799","caption":"What Would Seth Godin Do - Settings Page."},{"src":"https:\/\/ps.w.org\/what-would-seth-godin-do\/assets\/screenshot-2.png?rev=3473799","caption":"What Would Seth Godin Do - Frontend display of message."}],"raw_content":"<!--section=description-->\n<p><strong>What Would Seth Godin Do<\/strong> lets you greet first-time visitors with a tailored welcome message \u2014 like an invitation to subscribe to your RSS feed \u2014 and show a different (or no) message to people who have already been to your site before.<\/p>\n\n<p>The plugin stores a small cookie that counts how many times a visitor has been to your site. While the count is at or below the \"# of Repetitions\" threshold you configure, the <em>new visitor<\/em> message is shown. Once the visitor exceeds that threshold, the <em>return visitor<\/em> message appears instead.<\/p>\n\n<p>Inspired by Seth Godin's 2006 blog post: <a href=\"https:\/\/seths.blog\/2006\/08\/in_the_middle_s\/\">...in the middle, Starting<\/a>.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Separate, fully customisable messages for new and returning visitors.<\/li>\n<li>Configurable repetition threshold \u2014 choose how many visits count as \"new\".<\/li>\n<li>Choose whether messages appear before or after post content, or only where you place the <code>&lt;?php wwsgd_the_message(); ?&gt;<\/code> template tag.<\/li>\n<li>Option to show or hide messages on Pages (vs. Posts only).<\/li>\n<li>Exclude specific post or page IDs from showing any message.<\/li>\n<li>No external dependencies; lightweight vanilla JavaScript.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install directly through the WordPress <strong>Plugins \u2192 Add New<\/strong> screen, or download the zip and upload via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 WWSGD<\/strong> to configure your messages and display options.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20the%20plugin%20know%20if%20someone%20is%20a%20new%20or%20returning%20visitor%3F\"><h3>How does the plugin know if someone is a new or returning visitor?<\/h3><\/dt>\n<dd><p>It sets a cookie called <code>wwsgd_visits<\/code> that increments by 1 on each page load. Visitors whose count is at or below your configured \"# of Repetitions\" see the new-visitor message; everyone else sees the return-visitor message.<\/p><\/dd>\n<dt id=\"will%20this%20work%20if%20a%20visitor%20deletes%20their%20cookies%3F\"><h3>Will this work if a visitor deletes their cookies?<\/h3><\/dt>\n<dd><p>Yes \u2014 if the cookie is deleted the visitor will simply be treated as new again.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20message%20in%20a%20widget%20or%20template%20file%20instead%20of%20automatic%20insertion%3F\"><h3>Can I use the message in a widget or template file instead of automatic insertion?<\/h3><\/dt>\n<dd><p>Yes. Set <strong>Location of Message<\/strong> to \"Only where I use the template tag\" and place <code>&lt;?php wwsgd_the_message(); ?&gt;<\/code> wherever you want the messages to appear in your theme.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20message%20to%20returning%20visitors%20only%20and%20nothing%20to%20new%20visitors%3F\"><h3>Can I show a message to returning visitors only and nothing to new visitors?<\/h3><\/dt>\n<dd><p>Yes. Leave the <strong>Message to New Visitors<\/strong> field blank. New visitors will see nothing; return visitors will see your return-visitor message.<\/p><\/dd>\n<dt id=\"does%20wwsgd%20work%20with%20pages%20as%20well%20as%20posts%3F\"><h3>Does WWSGD work with pages as well as posts?<\/h3><\/dt>\n<dd><p>By default, yes. You can restrict it to posts only via the <strong>Show Message on Pages?<\/strong> setting.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0 (2026.03.03)<\/h4>\n\n<ul>\n<li>Remove adoption notices. New maintainer: James Hunt.<\/li>\n<li>Refactored to modern class-based architecture with PSR-4 autoloading.<\/li>\n<li>Added escaping and nonce verification throughout.<\/li>\n<li>Extracted inline JavaScript to a separately enqueued asset file.<\/li>\n<li>Adding language POT file.<\/li>\n<li>Updated minimum WordPress requirement to 6.0.<\/li>\n<li>Tested with PHP 8.4.<\/li>\n<\/ul>\n\n<h4>2.1.8<\/h4>\n\n<ul>\n<li>Add adoption notices to admin.<\/li>\n<\/ul>\n\n<h4>2.1.7<\/h4>\n\n<ul>\n<li>Reducing tags to 4.<\/li>\n<\/ul>\n\n<h4>2.1.6<\/h4>\n\n<ul>\n<li>Add contact info for plugin adoption<\/li>\n<\/ul>\n\n<h4>2.1.5<\/h4>\n\n<ul>\n<li>Make plugin available for adoption.<\/li>\n<\/ul>\n\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Update copyright to 2026<\/li>\n<li>Tested with WordPress 6.9<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Fix issue where WordPress's magic slashes were not being unslashed.<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fixing a vulnerability, as reported by Patchstack<\/li>\n<li>Tested with WordPress 6.0<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Updated for WordPress 4.6+.<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Improved sanitisation of excluded post\/page IDs.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fixed cookie path detection for WordPress installations in a subdirectory.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Minor code clean-up.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Rewrote cookie logic in vanilla JavaScript (removed jQuery dependency).<\/li>\n<li>Added return-visitor message and repetition threshold.<\/li>\n<li>Added option to exclude specific posts and pages.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release by Richard K Miller.<\/li>\n<\/ul>","raw_excerpt":"Displays a custom welcome message to new visitors and a different message to return visitors using a simple cookie.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/3996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=3996"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bonkerz"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=3996"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=3996"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=3996"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=3996"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=3996"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=3996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}