{"id":382022,"date":"2026-10-07T07:06:49","date_gmt":"2026-10-07T07:06:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/jeytech-shipping-cutoff-for-woocommerce\/"},"modified":"2026-10-13T18:50:05","modified_gmt":"2026-10-13T18:50:05","slug":"jeytech-shipping-cutoff","status":"publish","type":"plugin","link":"https:\/\/nn.wordpress.org\/plugins\/jeytech-shipping-cutoff\/","author":23573036,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"JeyTech Shipping Cutoff for WooCommerce","header_author":"JeyTech","header_description":"Hide one shipping method after a daily cutoff in your WordPress timezone.","assets_banners_color":"9e9c96","last_updated":"2026-10-13 18:50:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/jeytech.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":246,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"jeytech","date":"2026-10-12 16:42:03","revision":3742166},"1.0.1":{"tag":"1.0.1","author":"jeytech","date":"2026-10-13 18:50:05","revision":3744721}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3731998,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3731998,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3731998,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3731998,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3744723,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"author\":\"JeyTech\",\"title\":\"jeytech-shipping-cutoff \\u2014 live demo\",\"description\":\"Isolated fictitious demo. Sample bank account: DO NOT PAY. No external HTTP or email.\"},\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"features\":{\"networking\":false},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=jeytech-shipping-cutoff\",\"steps\":[{\"step\":\"defineWpConfigConsts\",\"consts\":{\"DISABLE_WP_CRON\":true,\"WP_HTTP_BLOCK_EXTERNAL\":true}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/mu-plugins\\\/jeytech-preview.php\",\"data\":\"<?php\\n\\\/\\\/ Isolated preview only: no email, external HTTP, cron or async queue runner.\\nadd_filter('pre_wp_mail', '__return_true');\\nadd_filter('pre_http_request', function(){ return new WP_Error('preview_offline', 'External HTTP is disabled in this demo.'); }, 1);\\nadd_filter('action_scheduler_allow_async_request_runner', '__return_false');\\nadd_filter('woocommerce_enable_setup_wizard', '__return_false');\\nadd_filter('woocommerce_show_admin_notice', '__return_false');\\n\\\/\\\/ Focus the actual plugin output, preserving its own HTML and behavior.\\nadd_action('wp_footer', function(){ echo '<script>document.addEventListener(\\\"DOMContentLoaded\\\",function(){const e=document.querySelector(\\\".jeytech-otqr-payment,.jeytech-sdbb-safety,.jeytech-tdph-lowest-price\\\");if(e)e.scrollIntoView({block:\\\"center\\\"});});<\\\/script>'; });\\nadd_action('admin_footer', function(){ if (($_GET['page'] ?? '') === 'jeytech-uog') echo '<script>document.querySelector(\\\".widefat.striped\\\")?.scrollIntoView({block:\\\"center\\\"});<\\\/script>'; });\\nadd_action('template_redirect', function(){\\n if (is_page('demo-order')) {\\n  $o=wc_get_order(get_option('jeytech_preview_order'));\\n  if ($o) { wp_safe_redirect($o->get_checkout_order_received_url()); exit; }\\n }\\n if (is_page('demo-checkout') || is_page('demo-cart')) {\\n  if (null === WC()->cart) wc_load_cart();\\n  WC()->customer->set_billing_country('FR'); WC()->customer->set_shipping_country('FR');\\n  WC()->customer->set_shipping_postcode('75001'); WC()->customer->set_shipping_city('Paris');\\n  if (WC()->cart->is_empty()) WC()->cart->add_to_cart(get_option('jeytech_preview_product'));\\n }\\n}, 1);\\n\"},{\"step\":\"setSiteOptions\",\"options\":{\"show_avatars\":0,\"blogname\":\"JeyTech \\u2014 sample store\",\"blogdescription\":\"Isolated demo \\u2014 all data is fictitious. Never send a payment.\",\"timezone_string\":\"Europe\\\/Paris\",\"woocommerce_currency\":\"EUR\",\"woocommerce_default_country\":\"FR\",\"woocommerce_store_address\":\"1 Example Demo Street (fictitious)\",\"woocommerce_store_city\":\"Paris\",\"woocommerce_store_postcode\":\"75001\",\"woocommerce_coming_soon\":\"no\",\"woocommerce_enable_guest_checkout\":\"yes\",\"woocommerce_onboarding_profile\":{\"completed\":true,\"skipped\":true},\"woocommerce_task_list_hidden\":\"yes\",\"woocommerce_allow_tracking\":\"no\",\"woocommerce_enable_marketplace_suggestions\":\"no\",\"woocommerce_custom_orders_table_enabled\":\"no\",\"woocommerce_bacs_settings\":{\"enabled\":\"yes\",\"title\":\"Bank transfer \\u2014 SAMPLE ONLY\",\"description\":\"Fictitious bank account for demo only. DO NOT send money.\"},\"woocommerce_bacs_accounts\":[{\"account_name\":\"SAMPLE ONLY - DO NOT PAY\",\"iban\":\"DE36000000000000000000\",\"bic\":\"\",\"bank_name\":\"FICTITIOUS BANK - zero bank code\",\"account_number\":\"\",\"sort_code\":\"\"}],\"permalink_structure\":\"\\\/%postname%\\\/\",\"woocommerce_price_decimal_sep\":\".\",\"woocommerce_price_thousand_sep\":\",\",\"woocommerce_currency_pos\":\"right_space\",\"woocommerce_price_num_decimals\":2}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"jeytech-shipping-cutoff\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire '\\\/wordpress\\\/wp-load.php';\\nwp_set_current_user(1);\\nWC_Install::create_pages();\\nforeach(WC()->mailer()->get_emails() as $email) add_filter('woocommerce_email_enabled_'.$email->id,'__return_false');\\nfunction demo_product($name='Demo notebook') { $p=new WC_Product_Simple(); $p->set_name($name); $p->set_slug('demo-notebook'); $p->set_status('publish'); $p->set_regular_price('25'); $p->set_description('Fictitious Playground demo. No payments or delivery.'); $p->save(); update_option('jeytech_preview_product',$p->get_id()); return $p; }\\nfunction demo_page($slug,$title,$content) { return wp_insert_post(array('post_type'=>'page','post_status'=>'publish','post_name'=>$slug,'post_title'=>$title,'post_content'=>$content)); }\\n$p=demo_product();\\n$zone=new WC_Shipping_Zone();$zone->set_zone_name('France demo');$zone->add_location('FR','country');$zone->save();$id=$zone->add_shipping_method('flat_rate');$other=$zone->add_shipping_method('flat_rate');\\nupdate_option('woocommerce_flat_rate_'.$id.'_settings',array('title'=>'Express \\u2014 hidden after cutoff','cost'=>'5','enabled'=>'yes'));\\nupdate_option('woocommerce_flat_rate_'.$other.'_settings',array('title'=>'Standard \\u2014 remains available','cost'=>'8','enabled'=>'yes'));\\n$s=\\\\JeyTech\\\\ShippingCutoff\\\\Plugin::defaults();$s['enabled']=true;$s['method_id']='flat_rate';$s['instance_id']=$id;$s['days']=range(1,7);$s['cutoff']='00:00';update_option(\\\\JeyTech\\\\ShippingCutoff\\\\Plugin::OPTION,$s);\\n$cart=demo_page('demo-cart','Shipping cutoff demo \\u2014 Express hidden','[woocommerce_cart]');update_option('woocommerce_cart_page_id',$cart);\\nflush_rewrite_rules();\\necho wp_json_encode(array('wp'=>get_bloginfo('version'),'wc'=>WC_VERSION,'php'=>PHP_VERSION,'product'=>get_option('jeytech_preview_product'),'order'=>get_option('jeytech_preview_order'),'external_http'=>'blocked','mail'=>'blocked'));\\n\"},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3731998,"resolution":"1","location":"assets","locale":"","width":1365,"height":902},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3731998,"resolution":"2","location":"assets","locale":"","width":1365,"height":1557},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3731998,"resolution":"3","location":"assets","locale":"","width":1365,"height":1464},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3731998,"resolution":"4","location":"assets","locale":"","width":1365,"height":1067},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3731998,"resolution":"5","location":"assets","locale":"","width":1365,"height":1052}},"screenshots":{"1":"Select one shipping method instance, a daily cutoff and active weekdays.","2":"Classic cart before the cutoff: the selected method and the alternative are available.","3":"Classic cart after the cutoff: the alternative remains available.","4":"Cart Block before the cutoff: both shipping options are available.","5":"Cart Block after the cutoff: the targeted option is hidden."}},"plugin_section":[],"plugin_tags":[286553,3546,286],"plugin_category":[45],"plugin_contributors":[282653],"plugin_business_model":[],"class_list":["post-382022","plugin","type-plugin","status-publish","hentry","plugin_tags-cutoff","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-jeytech","plugin_committers-jeytech"],"banners":{"banner":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/banner-772x250.png?rev=3731998","banner_2x":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/banner-1544x500.png?rev=3731998","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/icon-128x128.png?rev=3731998","icon_2x":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/icon-256x256.png?rev=3731998","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/screenshot-1.png?rev=3731998","caption":"Select one shipping method instance, a daily cutoff and active weekdays."},{"src":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/screenshot-2.png?rev=3731998","caption":"Classic cart before the cutoff: the selected method and the alternative are available."},{"src":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/screenshot-3.png?rev=3731998","caption":"Classic cart after the cutoff: the alternative remains available."},{"src":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/screenshot-4.png?rev=3731998","caption":"Cart Block before the cutoff: both shipping options are available."},{"src":"https:\/\/ps.w.org\/jeytech-shipping-cutoff\/assets\/screenshot-5.png?rev=3731998","caption":"Cart Block after the cutoff: the targeted option is hidden."}],"raw_content":"<!--section=description-->\n<p>Select one enabled shipping zone method instance, a daily HH:MM cutoff and active weekdays under WooCommerce &gt; Shipping Cutoff. Disabled by default. On inactive weekdays the selected instance is hidden all day. All other shipping methods remain available. Requires WooCommerce 9.6 or later.<\/p>\n\n<p>Shipping is calculated on the server for classic checkout and Cart\/Checkout Blocks. Package cache fingerprints include the rule, timezone, local date and open\/closed state. A checkout selection that expires must be reviewed before placing the order. The plugin does not change existing orders, payments or stock, and makes no external requests.<\/p>\n\n<p>At the cutoff second the method closes. At midnight a new calendar day begins. A repeated autumn cutoff uses its first occurrence and never reopens; a nonexistent spring cutoff takes effect at the transition to the next valid local time. Fixed UTC offsets are supported.<\/p>\n\n<p>Translations are delivered through native WordPress language packs when available; no translation pack availability is promised before validation on Translate WordPress.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate with WooCommerce active.<\/li>\n<li>Create the desired method under WooCommerce &gt; Settings &gt; Shipping &gt; Shipping zones.<\/li>\n<li>Open WooCommerce &gt; Shipping Cutoff, select the instance, cutoff and weekdays, then enable and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20schedule%20delivery%20dates%3F\"><h3>Does this schedule delivery dates?<\/h3><\/dt>\n<dd><p>No. It controls availability of one shipping option.<\/p><\/dd>\n<dt id=\"what%20if%20the%20selected%20method%20is%20deleted%3F\"><h3>What if the selected method is deleted?<\/h3><\/dt>\n<dd><p>Other methods remain unchanged. A deleted or disabled saved instance is marked unavailable. Select another enabled instance, or uncheck Enable cutoff and choose the empty selection to disable the obsolete rule safely. Invalid saves preserve previous settings.<\/p><\/dd>\n<dt id=\"are%20existing%20payment%20links%20affected%3F\"><h3>Are existing payment links affected?<\/h3><\/dt>\n<dd><p>Existing pay-for-order routes are not guarded by this plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Add an optional review invitation on this plugin's settings screen after 14 days and feature use, with per-user snooze and permanent dismissal.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Hide one shipping method after a daily cutoff in your WordPress timezone.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/382022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=382022"}],"author":[{"embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jeytech"}],"wp:attachment":[{"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=382022"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=382022"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=382022"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=382022"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=382022"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=382022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}