{"id":376925,"date":"2026-09-28T06:51:49","date_gmt":"2026-09-28T06:51:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/jeytech-safety-data-by-brand-for-woocommerce\/"},"modified":"2026-10-12T16:41:48","modified_gmt":"2026-10-12T16:41:48","slug":"jeytech-safety-data-by-brand","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/jeytech-safety-data-by-brand\/","author":23573036,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"JeyTech Safety Data by Brand for WooCommerce","header_author":"JeyTech","header_description":"Add GPSR manufacturer and safety information to every product \u2014 set it once per brand, audit what's missing.","assets_banners_color":"333334","last_updated":"2026-10-12 16:41:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":123,"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:41:48","revision":3742165}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3716420,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3716420,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3716420,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3716420,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3742381,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"author\":\"JeyTech\",\"title\":\"jeytech-safety-data-by-brand \\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\":\"\\\/?product=demo-notebook\",\"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-safety-data-by-brand\"},\"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)); }\\nupdate_option(\\\\JeyTech\\\\SafetyDataByBrand\\\\Settings::OPTION, array('enabled'=>true));\\n$brand=wp_insert_term('Example Demo Brand','product_brand');if(is_wp_error($brand))throw new Exception($brand->get_error_message());$bid=$brand['term_id'];\\nforeach(array('manufacturer'=>'Fictitious Demo Manufacturer','address'=>'1 Example Demo Street (fictitious), 75001 Paris, France','email'=>'safety@example.invalid','eu_responsible'=>'Fictitious EU Contact \\u2014 eu@example.invalid') as $field=>$value)update_term_meta($bid,'jeytech_sdbb_'.$field,$value);\\n$p=demo_product();wp_set_object_terms($p->get_id(),array((int)$bid),'product_brand');update_post_meta($p->get_id(),'_jeytech_sdbb_warnings','DEMO: Use indoors only. Keep away from water.');\\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"],"block_files":[],"assets_screenshots":{"screenshot-1-fr.png":{"filename":"screenshot-1-fr.png","revision":3716420,"resolution":"1","location":"assets","locale":"fr","width":780,"height":339},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3716420,"resolution":"1","location":"assets","locale":"","width":780,"height":339},"screenshot-2-fr.png":{"filename":"screenshot-2-fr.png","revision":3716420,"resolution":"2","location":"assets","locale":"fr","width":1340,"height":500},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3716420,"resolution":"2","location":"assets","locale":"","width":1340,"height":500},"screenshot-3-fr.png":{"filename":"screenshot-3-fr.png","revision":3716420,"resolution":"3","location":"assets","locale":"fr","width":1180,"height":319},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3716420,"resolution":"3","location":"assets","locale":"","width":1180,"height":319}},"screenshots":{"1":"Manufacturer fields on the brand screen, inherited by every product.","2":"The Product Safety section on the product page.","3":"The audit list of products missing GPSR data."}},"plugin_section":[],"plugin_tags":[14164,264911,286227,237366,286],"plugin_category":[45],"plugin_contributors":[282653],"plugin_business_model":[],"class_list":["post-376925","plugin","type-plugin","status-publish","hentry","plugin_tags-brands","plugin_tags-gpsr","plugin_tags-manufacturer-information","plugin_tags-product-safety","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-jeytech","plugin_committers-jeytech"],"banners":{"banner":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/banner-772x250.jpg?rev=3716420","banner_2x":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/banner-1544x500.jpg?rev=3716420","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/icon-128x128.png?rev=3716420","icon_2x":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/icon-256x256.png?rev=3716420","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/screenshot-1.png?rev=3716420","caption":"Manufacturer fields on the brand screen, inherited by every product."},{"src":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/screenshot-2.png?rev=3716420","caption":"The Product Safety section on the product page."},{"src":"https:\/\/ps.w.org\/jeytech-safety-data-by-brand\/assets\/screenshot-3.png?rev=3716420","caption":"The audit list of products missing GPSR data."}],"raw_content":"<!--section=description-->\n<p>Add GPSR manufacturer information and product safety details to WooCommerce product pages. JeyTech Safety Data by Brand stores the manufacturer, address, email and EU responsible person once per brand, with product overrides, product-level safety warnings and an audit of missing fields.<\/p>\n\n<p>Safety Data by Brand adds them where they belong:<\/p>\n\n<ul>\n<li><strong>Set once per brand<\/strong> \u2014 manufacturer, address, email and EU responsible person live on the brand (WooCommerce core taxonomy). Every product of the brand inherits them.<\/li>\n<li><strong>Override per product<\/strong> \u2014 any field can be replaced on a single product. Variations use their parent's data.<\/li>\n<li><strong>Safety warnings per product<\/strong> \u2014 care instructions shown with the manufacturer block.<\/li>\n<li><strong>\"Product Safety\" section on the page<\/strong> \u2014 a product tab on classic themes, an appended section on block themes. Nothing shows when a product has no data.<\/li>\n<li><strong>Audit list<\/strong> \u2014 the admin screen lists the products still missing GPSR data.<\/li>\n<\/ul>\n\n<p>Safety Data by Brand displays what you enter. It is not legal advice and does not guarantee compliance.<\/p>\n\n<p>Compatible with High-Performance Order Storage (HPOS) and the Cart &amp; Checkout blocks. Requires WooCommerce 9.6 or later for the core Brands taxonomy.<\/p>\n\n<h4>More from JeyTech<\/h4>\n\n<p>Other free WooCommerce plugins: <a href=\"https:\/\/wordpress.org\/plugins\/jeytech-30-day-price-history\/\">30-Day Price History<\/a>; <a href=\"https:\/\/wordpress.org\/plugins\/jeytech-checkout-hours\/\">Checkout Hours<\/a>; <a href=\"https:\/\/wordpress.org\/plugins\/jeytech-order-transfer-qr\/\">Order Transfer QR<\/a>; <a href=\"https:\/\/wordpress.org\/plugins\/jeytech-shipping-cutoff\/\">Shipping Cutoff<\/a>; <a href=\"https:\/\/wordpress.org\/plugins\/jeytech-unpaid-transfer-guard\/\">Unpaid Transfer Guard<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin (WooCommerce 9.6 or later must be active).<\/li>\n<li>Go to <strong>Products \u2192 Brands<\/strong> and fill in the manufacturer data of each brand.<\/li>\n<li>Optionally override fields or add warnings on a product (GPSR tab).<\/li>\n<li>Check <strong>WooCommerce \u2192 GPSR audit<\/strong> for products still missing data.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20adding%20gpsr%20data%20make%20my%20woocommerce%20shop%20legally%20compliant%3F\"><h3>Does adding GPSR data make my WooCommerce shop legally compliant?<\/h3><\/dt>\n<dd><p>No tool can. The plugin displays the data you enter in the right place; you remain responsible for its accuracy. When in doubt, ask a professional.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20gpsr%20manufacturer%20information%20once%20per%20woocommerce%20brand%3F\"><h3>How do I add GPSR manufacturer information once per WooCommerce brand?<\/h3><\/dt>\n<dd><p>Once per brand under Products \u2192 Brands. Products inherit their brand's data; leave a product field empty to inherit it, or fill it to override.<\/p><\/dd>\n<dt id=\"do%20woocommerce%20variations%20inherit%20their%20parent%20product%20safety%20data%3F\"><h3>Do WooCommerce variations inherit their parent product safety data?<\/h3><\/dt>\n<dd><p>GPSR fields live on the parent product and its brand. Variations always use their parent's data.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20block%20themes%3F\"><h3>Does it work with block themes?<\/h3><\/dt>\n<dd><p>Yes. Classic themes show a \"Product Safety\" product tab; block themes get the same section appended to the product content, since the Single Product block renders no classic tabs.<\/p><\/dd>\n<dt id=\"what%20if%20a%20product%20has%20no%20brand%3F\"><h3>What if a product has no brand?<\/h3><\/dt>\n<dd><p>Fill the four fields directly on the product. The audit lists products that still miss data either way.<\/p><\/dd>\n<dt id=\"where%20do%20i%20add%20the%20eu%20responsible%20person%20for%20a%20product%3F\"><h3>Where do I add the EU responsible person for a product?<\/h3><\/dt>\n<dd><p>Enter the EU responsible person under Products \u2192 Brands to share the value across that brand, or fill the field on an individual product to override it. The plugin displays the value you enter; it does not verify that person or assess legal requirements.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: brand-level manufacturer data with per-product overrides, safety warnings, product page section for classic and block themes, audit list.<\/li>\n<\/ul>","raw_excerpt":"GPSR manufacturer information for WooCommerce: save contact details once per brand, add product safety warnings and audit missing data.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=376925"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jeytech"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376925"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376925"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376925"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376925"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376925"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}