PageSourceSearch

https://www.toolshero.com/login-subscriber/

html toolshero.com collected 2026-10-02 02:30:16 UTC 103,409 bytes, 3,762 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4	<meta charset="UTF-8">
5	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6	<meta name="ai-usage-policy" content="Allowed-with-attribution; Attribution-Required; License=CC BY-NC-ND 4.0">
7	<meta name="publication-media-verification" content="86429e66755147c7aec69c3a706dfe50">
8	<meta name="linksman-verification" content="83etvGD6LWXgGpYE">
9	<meta name="viewport" content="width=device-width">
10
11	<link rel="preload" href="https://www.toolshero.com/wp-content/plugins/rate-my-post/public/css/fonts/ratemypost.ttf" type="font/ttf" as="font" crossorigin="anonymous">
12<!-- Search Engine Optimization by Rank Math PRO - https://rankmath.com/ -->
13<title>Login to the Toolshero community! - Toolshero</title>
14<meta name="robots" content="nofollow, noindex"/>
15<meta property="og:locale" content="en_US" />
16<meta property="og:type" content="article" />
17<meta property="og:title" content="Login to the Toolshero community! - Toolshero" />
18<meta property="og:description" content="Username or E-mail Password Remember Me &nbsp; &nbsp; Forgot Password" />
19<meta property="og:url" content="https://www.toolshero.com/login-subscriber/" />
20<meta property="og:site_name" content="Toolshero" />
21<meta property="article:publisher" content="https://www.facebook.com/toolshero" />
22<meta property="article:author" content="https://www.facebook.com/vvvliet" />
23<meta property="og:updated_time" content="2023-11-08T16:08:57+00:00" />
24<meta property="article:published_time" content="2020-01-07T10:37:02+00:00" />
25<meta property="article:modified_time" content="2023-11-08T16:08:57+00:00" />
26<meta name="twitter:card" content="summary_large_image" />
27<meta name="twitter:title" content="Login to the Toolshero community! - Toolshero" />
28<meta name="twitter:description" content="Username or E-mail Password Remember Me &nbsp; &nbsp; Forgot Password" />
29<meta name="twitter:site" content="@toolshero" />
30<meta name="twitter:creator" content="@toolshero" />
31<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.toolshero.com/#organization","name":"Toolshero","url":"https://www.toolshero.com/","sameAs":["https://www.facebook.com/toolshero","https://twitter.com/toolshero","https://www.instagram.com/toolshero/","https://www.linkedin.com/company/toolshero","https://www.pinterest.com/toolshero/","https://www.youtube.com/toolshero"]},{"@type":"WebSite","@id":"https://www.toolshero.com/#website","url":"https://www.toolshero.com","name":"Toolshero","publisher":{"@id":"https://www.toolshero.com/#organization"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://www.toolshero.com/login-subscriber/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://www.toolshero.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://www.toolshero.com/login-subscriber/","name":"Login to the Toolshero community!"}}]},{"@type":"WebPage","@id":"https://www.toolshero.com/login-subscriber/#webpage","url":"https://www.toolshero.com/login-subscriber/","name":"Login to the Toolshero community! - Toolshero","datePublished":"2020-01-07T10:37:02+00:00","dateModified":"2023-11-08T16:08:57+00:00","isPartOf":{"@id":"https://www.toolshero.com/#website"},"inLanguage":"en-US","breadcrumb":{"@id":"https://www.toolshero.com/login-subscriber/#breadcrumb"}},{"@type":"Person","@id":"https://www.toolshero.com/login-subscriber/#author","name":"Vincent van Vliet","image":{"@type":"ImageObject","@id":"https://www.toolshero.com/wp-content/uploads/2026/08/vincent-van-vliet-2024-toolshero.png","url":"https://www.toolshero.com/wp-content/uploads/2026/08/vincent-van-vliet-2024-toolshero.png","caption":"Vincent van Vliet","inLanguage":"en-US"},"sameAs":["https://www.toolshero.com/","https://www.facebook.com/vvvliet","https://www.linkedin.com/in/vincentvanvliet/"],"works
31For":{"@id":"https://www.toolshero.com/#organization"}},{"@type":"Article","headline":"Login to the Toolshero community! - Toolshero","datePublished":"2020-01-07T10:37:02+00:00","dateModified":"2023-11-08T16:08:57+00:00","author":{"@id":"https://www.toolshero.com/login-subscriber/#author","name":"Vincent van Vliet"},"publisher":{"@id":"https://www.toolshero.com/#organization"},"name":"Login to the Toolshero community! - Toolshero","@id":"https://www.toolshero.com/login-subscriber/#richSnippet","isPartOf":{"@id":"https://www.toolshero.com/login-subscriber/#webpage"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.toolshero.com/login-subscriber/#webpage"}}]}</script>
31
32<!-- /Rank Math WordPress SEO plugin -->
33
34<link rel='dns-prefetch' href='//static.addtoany.com' />
35<link rel="alternate" type="application/rss+xml" title="Toolshero &raquo; Feed" href="https://www.toolshero.com/feed/" />
36<link rel="alternate" type="application/rss+xml" title="Toolshero &raquo; Comments Feed" href="https://www.toolshero.com/comments/feed/" />
37<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.toolshero.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.toolshero.com%2Flogin-subscriber%2F" />
38<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.toolshero.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.toolshero.com%2Flogin-subscriber%2F&#038;format=xml" />
39<style id="wp-img-auto-sizes-contain-inline-css">
40img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
41/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
42</style>
43<link rel='stylesheet' id='mp-theme-css' href='https://www.toolshero.com/wp-content/plugins/memberpress/css/ui/theme.css?ver=1.14.1' media='all' />
44<link rel='stylesheet' id='dashicons-css' href='https://www.toolshero.com/wp-includes/css/dashicons.min.css?ver=7.1.2' media='all' />
45<link rel='stylesheet' id='mp-login-css-css' href='https://www.toolshero.com/wp-content/plugins/memberpress/css/ui/login.css?ver=1.14.1' media='all' />
46<style id="wp-block-library-inline-css">
47:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
47--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
48
49/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
50</style>
51<style id="classic-theme-styles-inline-css">
52/*! This file is auto-generated */
53.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
54/*# sourceURL=/wp-includes/css/classic-themes.min.css */
55</style>
56
57<link rel='stylesheet' id='rate-my-post-css' href='https://www.toolshero.com/wp-content/plugins/rate-my-post/public/css/rate-my-post.min.css?ver=4.5.2' media='all' />
58<style id="rate-my-post-inline-css">
59.rmp-widgets-container.rmp-wp-plugin.rmp-main-container {  text-align:left;}.rmp-icon--full-highlight {color: #41D87D;}.rmp-icon--half-highlight {  background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc));  background: linear-gradient(to right, #41D87D 50%, #ccc 50%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--half-highlight {    background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc));    background: linear-gradient(to right, #41D87D 50%, #ccc 50%);    -webkit-background-clip: text;    -webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--full-highlight {  color: #41D87D;}@media (hover: hover) {  .rmp-rating-widget .rmp-icon--hovered {    color: #FFCC36;    -webkit-background-clip: initial;    -webkit-text-fill-color: initial;    background: transparent;    -webkit-transition: .1s color ease-in;    transition: .1s color ease-in;  }}.rmp-rating-widget .rmp-icon--processing-rating {color: #41D87D;  -webkit-background-clip: initial;  -webkit-text-fill-color: initial;  background: transparent;}.rmp-rating-widget .rmp-icon--ratings {  font-size: 22px;}
60.rmp-widgets-container.rmp-wp-plugin.rmp-main-container {  text-align:left;}.rmp-icon--full-highlight {color: #41D87D;}.rmp-icon--half-highlight {  background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc));  background: linear-gradient(to right, #41D87D 50%, #ccc 50%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--half-highlight {    background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc));    background: linear-gradient(to right, #41D87D 50%, #ccc 50%);    -webkit-background-clip: text;    -webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--full-highlight {  color: #41D87D;}@media (hover: hover) {  .rmp-rating-widget .rmp-icon--hovered {    color: #FFCC36;    -webkit-background-clip: initial;    -webkit-text-fill-color: initial;    background: transparent;    -webkit-transition: .1s color ease-in;    transition: .1s color ease-in;  }}.rmp-rating-widget .rmp-icon--processing-rating {color: #41D87D;  -webkit-background-clip: initial;  -webkit-text-fill-color: initial;  background: transparent;}.rmp-rating-widget .rmp-icon--ratings {  font-size: 22px;}
61/*# sourceURL=rate-my-post-inline-css */
62</style>
63<style id="global-styles-inline-css">
64:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
640) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
64.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
65/*# sourceURL=global-styles-inline-css */
66</style>
67
68<link rel='stylesheet' id='simple_load_more-frontend-css' href='https://www.toolshero.com/wp-content/plugins/simple-load-more/assets/css/frontend.css?ver=1.0.0' media='all' />
69<style id="simple_load_more-frontend-inline-css">
70.elm-button { background: #ffffff; color: # 171717; }
71.elm-button:hover, .elm-button:active, .elm-button:focus { background: #ffffff; }
72.elm-loading-icon { fill: # 171717; stroke: # 171717; }
73
74/*# sourceURL=simple_load_more-frontend-inline-css */
75</style>
76<link rel='stylesheet' id='eztoc-css' href='https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.87.1' media='all' />
77<style id="eztoc-inline-css">
78div#ez-toc-container .ez-toc-title, .ez-toc-split-section .ez-toc-title {font-size: 130%;}div#ez-toc-container .ez-toc-title, .ez-toc-split-section .ez-toc-title {font-weight: 700;}div#ez-toc-container ul li , div#ez-toc-container ul li a, .ez-toc-split-section ul li , .ez-toc-split-section ul li a {font-size: 100%;}div#ez-toc-container ul li , div#ez-toc-container ul li a, .ez-toc-split-section ul li , .ez-toc-split-section ul li a {font-weight: 400;}div#ez-toc-container nav ul ul li, .ez-toc-split-section nav ul ul li {font-size: 90%;}div#ez-toc-container, .ez-toc-split-section {background: #f9fbfc;border: 1px solid #ffffff;}div#ez-toc-container p.ez-toc-title , #ez-toc-container .ez_toc_custom_title_icon , #ez-toc-container .ez_toc_custom_toc_icon, .ez-toc-split-section p.ez-toc-title , .ez-toc-split-section .ez_toc_custom_title_icon , .ez-toc-split-section .ez_toc_custom_toc_icon {color: #000000;}div#ez-toc-container ul.ez-toc-list a, .ez-toc-split-section ul.ez-toc-list a {color: #424242;}div#ez-toc-container ul.ez-toc-list a:hover, .ez-toc-split-section ul.ez-toc-list a:hover {color: #41d87d;}div#ez-toc-container ul.ez-toc-list a:visited, .ez-toc-split-section ul.ez-toc-list a:visited {color: #37b75d;}.ez-toc-counter nav ul li a::before {color: ;}.ez-toc-box-title {font-weight: bold; margin-bottom: 10px; text-align: center; text-transform: uppercase; letter-spacing: 1px; color: #666; padding-bottom: 5px;position:absolute;top:-4%;left:5%;background-color: inherit;transition: top 0.3s ease;}.ez-toc-box-title.toc-closed {top:-25%;}
79.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul {direction: ltr;counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counter(item, numeric) '. ';margin-right: .2em; counter-increment: item;flex-grow: 0;flex-shrink: 0;float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul {direction: ltr;counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counter(item, numeric) '. ';margin-right: .2em; counter-increment: item;flex-grow: 0;flex-shrink: 0;float: left; }
80/*# sourceURL=eztoc-inline-css */
81</style>
82<link rel='stylesheet' id='slickcss-css' href='https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/css/slick.css?ver=1722587747' media='all' />
83<link rel='stylesheet' id='main-css' href='https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/style.css?ver=1790431563' media='all' />
84<link rel='stylesheet' id='responsive-css' href='https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/css/responsive.css?ver=1722587747' media='all' />
85<link rel='stylesheet' id='addtoany-css' href='https://www.toolshero.com/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.16' media='all' />
86<link rel='stylesheet' id='cspfsl-buttons-style-css' href='https://www.toolshero.com/wp-content/plugins/memberpress-social-login//vendor-prefixed/caseproof/social-login/src//ui/assets/buttons.css?ver=7.1.2' media='all' />
87<script id="jquery-core-js-extra">
88var elm_button_vars = {"wrapper":".posts-grid"};
89//# sourceURL=jquery-core-js-extra
90</script>
vendor: 1 bytes, line 90
90
91<script id="jquery-core-js" src="https://www.toolshero.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 91
91
92<script id="jquery-migrate-js" src="https://www.toolshero.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 92
92
93<script id="underscore-js" src="https://www.toolshero.com/wp-includes/js/underscore.min.js?ver=1.13.8"></script>
vendor: 1 bytes, line 93
93
94<script id="wp-hooks-js" src="https://www.toolshero.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 94
94
95<script id="wp-i18n-js" src="https://www.toolshero.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 95
95
96<script id="wp-i18n-js-after">
97wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
98//# sourceURL=wp-i18n-js-after
99</script>
vendor: 1 bytes, line 99
99
100<script id="mepr-login-js-js" src="https://www.toolshero.com/wp-content/plugins/memberpress/js/login.js?ver=1.14.1"></script>
vendor: 1 bytes, line 100
100
101<script id="addtoany-core-js-before">
102window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={};
103
104//# sourceURL=addtoany-core-js-before
105</script>
vendor: 1 bytes, line 105
105
106<script id="addtoany-core-js" defer src="https://static.addtoany.com/menu/page.js"></script>
vendor: 1 bytes, line 106
106
107<script id="addtoany-jquery-js" defer src="https://www.toolshero.com/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1"></script>
vendor: 1 bytes, line 107
107
108<script id="simple_load_more-frontend-js" src="https://www.toolshero.com/wp-content/plugins/simple-load-more/assets/js/frontend.js?ver=1.0.0"></script>
vendor: 1 bytes, line 108
108
109<script id="cspfsl-buttons-js-js" src="https://www.toolshero.com/wp-content/plugins/memberpress-social-login//vendor-prefixed/caseproof/social-login/src//ui/assets/buttons.js?ver=7.1.2"></script>
109
110<link rel="https://api.w.org/" href="https://www.toolshero.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.toolshero.com/wp-json/wp/v2/pages/32897" /><link rel='shortlink' href='https://www.toolshero.com/?p=32897' />
111<script>(()=>{var o=[],i={};["on","off","toggle","show"].forEach(l=>{i[l]=function(){o.push([l,arguments])}}),window.Boxzilla=i,window.boxzilla_queue=o})();</script>
vendor: 82 bytes, line 111
111<script async id="google_gtagjs" src="https://www.googletagmanager.com/gtag/js?id=
111G-SQ5LQGP7CN
vendor: 12 bytes, line 111
111"></script>
112<script id="google_gtagjs-inline">
vendor: 124 bytes, line 113
113window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
113G-SQ5LQGP7CN
vendor: 9 bytes, line 113
113', {} );
114</script>
114
115
116	<style>
117
118	/* =====================================================
119	   ACCOUNT
120	===================================================== */
121
122	.th-saved-account {
123		width: 100%;
124
125		padding-top: 5px;
126	}
127
128
129	/* =====================================================
130	   HEADER
131	===================================================== */
132
133	.th-saved-header {
134		display: flex;
135		align-items: flex-start;
136		justify-content: space-between;
137
138		gap: 30px;
139
140		padding:
141			24px
142			0
143			22px;
144
145		border-bottom:
146			1px
147			solid
148			#e7e7e7;
149	}
150
151
152	.th-saved-header h2 {
153		margin:
154			0
155			0
156			7px;
157
158		color: #202020;
159
160		font-size: 26px;
161		font-weight: 700;
162		line-height: 1.25;
163	}
164
165
166	.th-saved-header p {
167		max-width: 650px;
168
169		margin: 0;
170
171		color: #666666;
172
173		font-size: 15px;
174		line-height: 1.55;
175	}
176
177
178	/* =====================================================
179	   COUNTER
180	===================================================== */
181
182	.th-saved-counter {
183		flex:
184			0
185			0
186			auto;
187
188		min-width: 140px;
189
190		padding:
191			10px
192			15px;
193
194		background: #f7f7f7;
195
196		border-radius: 7px;
197
198		text-align: center;
199	}
200
201
202	.th-saved-counter strong {
203		display: block;
204
205		color: #202020;
206
207		font-size: 20px;
208		font-weight: 700;
209		line-height: 1.15;
210	}
211
212
213	.th-saved-counter span {
214		display: block;
215
216		margin-top: 3px;
217
218		color: #777777;
219
220		font-size: 12px;
221		line-height: 1.3;
222	}
223
224
225	/* =====================================================
226	   RESULTS LIST
227	===================================================== */
228
229	.th-saved-grid {
230		display: block;
231
232		margin: 0;
233		padding: 0;
234	}
235
236
237	.th-saved-result {
238		display: grid;
239
240		grid-template-columns:
241			112px
242			minmax(0, 1fr);
243
244		align-items: start;
245
246		gap: 20px;
247
248		margin: 0;
249
250		padding:
251			24px
252			0;
253
254		background: transparent;
255
256		border: 0;
257
258		border-bottom:
259			1px
260			solid
261			#e7e7e7;
262
263		border-radius: 0;
264
265		box-shadow: none;
266
267		transition: none;
268	}
269
270
271	.th-saved-result:hover {
272		background: transparent;
273
274		border-color: #e7e7e7;
275
276		box-shadow: none;
277
278		transform: none;
279	}
280
281
282	/* =====================================================
283	   THUMBNAIL
284	===================================================== */
285
286	.th-saved-image {
287		display: block;
288
289		width: 112px;
290		height: 112px;
291
292		margin: 0;
293
294		overflow: hidden;
295
296		background: #f4f4f4;
297
298		border-radius: 8px;
299
300		text-decoration: none;
301	}
302
303
304	.th-saved-image img {
305		display: block;
306
307		width: 112px;
308		height: 112px;
309
310		margin: 0;
311
312		object-fit: cover;
313
314		border-radius: 8px;
315
316		transition:
317			transform
318			.2s
319			ease;
320	}
321
322
323	.th-saved-image:hover img {
324		transform:
325			scale(1.025);
326	}
327
328
329	.th-saved-image-placeholder {
330		display: block;
331
332		width: 100%;
333		height: 100%;
334
335		background: #f4f4f4;
336	}
337
338
339	/* =====================================================
340	   CONTENT
341	===================================================== */
342
343	.th-saved-content {
344		min-width: 0;
345
346		padding: 0;
347	}
348
349
350	.th-saved-category {
351		margin:
352			0
353			0
354			4px;
355
356		color: #777777;
357
358		font-size: 12px;
359		font-weight: 600;
360		line-height: 1.3;
361	}
362
363
364	.th-saved-title {
365		margin:
366			0
367			0
368			4px !important;
369
370		padding: 0;
371
372		font-size: 21px !important;
373		font-weight: 700 !important;
374		line-height: 1.3 !important;
375	}
376
377
378	.th-saved-title a {
379		color: #202020 !important;
380
381		text-decoration: none !important;
382
383		transition:
384			color
385			.15s
386			ease;
387	}
388
389
390	.th-saved-title a:hover,
391	.th-saved-title a:focus {
392		color: #0073aa !important;
393
394		text-decoration: none !important;
395	}
396
397
398	.th-saved-updated {
399		margin:
400			0
401			0
402			8px;
403
404		color: #777777;
405
406		font-size: 12px;
407		font-weight: 400;
408		line-height: 1.4;
409	}
410
411
412	.th-saved-description {
413		display: -webkit-box;
414
415		overflow: hidden;
416
417		-webkit-box-orient: vertical;
418		-webkit-line-clamp: 3;
419
420		margin:
421			0
422			0
423			9px !important;
424
425		padding: 0;
426
427		color: #555555;
428
429		font-size: 15px;
430		font-weight: 400;
431		line-height: 1.55;
432	}
433
434
435	/* =====================================================
436	   REMOVE
437	===================================================== */
438
439	.th-saved-result-actions {
440		display: flex;
441		align-items: center;
442
443		margin:
444			2px
445			0
446			0;
447	}
448
449
450	.th-remove-saved-btn {
451		display: inline;
452
453		width: auto;
454		height: auto;
455
456		min-width: 0;
457		min-height: 0;
458
459		margin: 0;
460		padding: 0;
461
462		background: transparent !important;
463
464		border: 0 !important;
465
466		border-radius: 0;
467
468		box-shadow: none !important;
469
470		color: #777777;
471
472		font-family: inherit;
473		font-size: 12px;
474		font-weight: 400;
475		line-height: 1.4;
476
477		text-decoration: underline;
478
479		text-underline-offset: 2px;
480
481		cursor: pointer;
482
483		transition:
484			color
485			.15s
486			ease;
487	}
488
489
490	.th-remove-saved-btn:hover,
491	.th-remove-saved-btn:focus {
492		background: transparent !important;
493
494		color: #333333;
495
496		border: 0 !important;
497
498		box-shadow: none !important;
499	}
500
501
502	/* =====================================================
503	   EMPTY LIST
504	===================================================== */
505
506	.th-saved-empty {
507		margin-top: 24px;
508
509		padding:
510			38px
511			25px;
512
513		background: #fafafa;
514
515		border:
516			1px
517			dashed
518			#d8d8d8;
519
520		border-radius: 8px;
521
522		text-align: center;
523	}
524
525
526	.th-saved-empty-icon {
527		display: flex;
528		align-items: center;
529		justify-content: center;
530
531		width: 46px;
532		height: 46px;
533
534		margin:
535			0
536			auto
537			13px;
538
539		background: #fff3cf;
540
541		border-radius: 50%;
542
543		color: #222222;
544	}
545
546
547	.th-saved-empty-icon svg {
548		width: 21px;
549		height: 21px;
550
551		fill: currentColor;
552	}
553
554
555	.th-saved-empty h3 {
556		margin:
557			0
558			0
559			6px;
560
561		color: #202020;
562
563		font-size: 18px;
564		font-weight: 700;
565		line-height: 1.3;
566	}
567
568
569	.th-saved-empty p {
570		margin: 0;
571
572		color: #666666;
573
574		font-size: 14px;
575		line-height: 1.5;
576	}
577
578
579	/* =====================================================
580	   TABLET / MOBILE
581	===================================================== */
582
583	@media (max-width: 700px) {
584
585		.th-saved-header {
586			flex-direction: column;
587
588			gap: 16px;
589		}
590
591
592		.th-saved-counter {
593			width: 100%;
594
595			box-sizing: border-box;
596		}
597
598
599		.th-saved-result {
600			grid-template-columns:
601				88px
602				minmax(0, 1fr);
603
604			gap: 14px;
605
606			padding:
607				20px
608				0;
609		}
610
611
612		.th-saved-image,
613		.th-saved-image img {
614			width: 88px;
615			height: 88px;
616		}
617
618
619		.th-saved-title {
620			font-size: 18px !important;
621		}
622
623
624		.th-saved-description {
625			-webkit-line-clamp: 2;
626
627			font-size: 14px;
628		}
629
630	}
631
632
633	@media (max-width: 480px) {
634
635		.th-saved-result {
636			grid-template-columns:
637				76px
638				minmax(0, 1fr);
639
640			gap: 12px;
641		}
642
643
644		.th-saved-image,
645		.th-saved-image img {
646			width: 76px;
647			height: 76px;
648		}
649
650
651		.th-saved-title {
652			font-size: 17px !important;
653		}
654
655
656		.th-saved-updated {
657			margin-bottom: 6px;
658		}
659
660	}
661
662	</style>
663
664	<link rel="icon" href="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" sizes="32x32" />
665<link rel="icon" href="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" sizes="192x192" />
666<link rel="apple-touch-icon" href="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" />
667<meta name="msapplication-TileImage" content="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" />
668    <style>
669        @media screen and (max-width: 767px) {
670            #ez-toc-container,
671            .ez-toc-container {
672                display: none !important;
673            }
674        }
675    </style>
676    
677	
678	
679	<link rel="preload" as="font" href="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/fonts/open-sans-v18-latin-regular.woff2" type="font/woff2" crossorigin="anonymous">
680	<link rel="preload" as="font" href="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/fonts/open-sans-v18-latin-700.woff" type="font/woff" crossorigin="anonymous">
681
682	<style>
683		.hero-content ul li:before {
684			content: "✓";
685			font-weight: bold;
686			margin-right: 10px;
687		}
688
689		.pricing-table-content-innner ul li:before,
690		.image-callout-content ul li:before {
691			content: "✓";
692		}
693	</style>
694
695	
695<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/1cdc7d15f5d77c0e0f14b83f/script.js"></script>
695
696</head>
697
698<body class="wp-singular page-template-default page page-id-32897 wp-theme-toolshero-wp-theme">
699
700
701<section class="topbar-menu">
702	<div class="container">
703		<ul id="menu-topbar-menu" class=""><li id="menu-item-2064991" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064991"><a href="https://www.toolshero.com/about-us/">About us</a></li>
704<li id="menu-item-2049066" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-32897 current_page_item menu-item-2049066"><a href="https://www.toolshero.com/login-subscriber/" aria-current="page"><i class="icon-user"></i> Log in</a></li>
705<li id="menu-item-2072655" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2072655"><a href="https://www.toolshero.com/subscribe/">Unlock Full Access</a></li>
706</ul>	</div>
707</section>
708
709<header class="header clearfix">
710	<div class="container">
711
712		<div class="header-logo">
713			<a href="https://www.toolshero.com/">
714				<img alt="Toolshero" src="https://www.toolshero.com/wp-content/uploads/2021/04/image-2.svg">
715			</a>
716		</div>
717
718		<nav id="nav" class="nav"><ul id="menu-home-toolshero" class=""><li id="menu-item-2083740" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2083740"><a href="https://www.toolshero.com/latest-articles/">Latest articles</a></li>
719<li id="menu-item-36264" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-36264"><a href="https://www.toolshero.com/management/">Themes</a>
720<ul class="sub-menu">
721	<li id="menu-item-8972" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8972"><a href="https://www.toolshero.com/change-management/">Change Management</a></li>
722	<li id="menu-item-8973" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8973"><a href="https://www.toolshero.com/communication-methods/">Communication methods</a></li>
723	<li id="menu-item-18419" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18419"><a href="https://www.toolshero.com/creativity/">Creativity</a></li>
724	<li id="menu-item-14002" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14002"><a href="https://www.toolshero.com/decision-making/">Decision Making</a></li>
725	<li id="menu-item-8976" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8976"><a href="https://www.toolshero.com/financial-management/">Financial Management</a></li>
726	<li id="menu-item-26624" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-26624"><a href="https://www.toolshero.com/human-resources/">Human Resources (HR)</a></li>
727	<li id="menu-item-23374" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23374"><a href="https://www.toolshero.com/information-technology/">Information Technology (IT)</a></li>
728	<li id="menu-item-21143" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21143"><a href="https://www.toolshero.com/innovation/">Innovation</a></li>
729	<li id="menu-item-11514" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11514"><a href="https://www.toolshero.com/leadership/">Leadership</a></li>
730	<li id="menu-item-8977" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8977"><a href="https://www.toolshero.com/management/">Management</a></li>
731	<li id="menu-item-8978" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8978"><a href="https://www.toolshero.com/marketing/">Marketing Theories</a></li>
732	<li id="menu-item-29240" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-29240"><a href="https://www.toolshero.com/personal-development/">Personal Development</a></li>
733	<li id="menu-item-8980" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8980"><a href="https://www.toolshero.com/project-management/">Project Management (PM)</a></li>
734	<li id="menu-item-8974" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8974"><a href="https://www.toolshero.com/problem-solving/">Problem Solving Theories</a></li>
735	<li id="menu-item-23139" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23139"><a href="https://www.toolshero.com/psychology/">Psychology Theories</a></li>
736	<li id="menu-item-2062938" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2062938"><a href="https://www.toolshero.com/research/">Research Theories</a></li>
737	<li id="menu-item-8981" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8981"><a href="https://www.toolshero.com/quality-management/">Quality Management (QM)</a></li>
738	<li id="menu-item-42194" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-42194"><a href="https://www.toolshero.com/sociology/">Sociology Theories</a></li>
739	<li id="menu-item-8982" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8982"><a href="https://www.toolshero.com/strategy/">Strategy Theories</a></li>
740	<li id="menu-item-9034" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9034"><a href="https://www.toolshero.com/toolsheroes/">Toolsheroes</a></li>
741</ul>
742</li>
743<li id="menu-item-2050002" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2050002"><a href="https://www.toolshero.com/templates/">Tools</a>
744<ul class="sub-menu">
745	<li id="menu-item-28155" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-28155"><a href="https://www.toolshero.com/templates/">Templates</a></li>
746	<li id="menu-item-2075090" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2075090"><a href="https://www.toolshero.com/questionnaires/">Tests &amp; Evaluation tools</a></li>
747	<li id="menu-item-1044288" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044288"><a href="https://www.toolshero.com/knowledge-base/">Lexicon</a></li>
748	<li id="menu-item-2068022" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2068022"><a href="https://www.toolshero.com/blog/">Blog</a></li>
749	<li id="menu-item-2066238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2066238"><a href="https://www.toolshero.com/top-30-articles-ebook/">Free Toolshero e-book</a></li>
750</ul>
751</li>
752<li id="menu-item-1044289" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1044289"><a href="https://www.toolshero.com/subscribe/">Membership Options</a>
753<ul class="sub-menu">
754	<li id="menu-item-2064020" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064020"><a href="https://www.toolshero.com/subscribe/">Plans &#038; Pricing</a></li>
755	<li id="menu-item-2078266" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2078266"><a href="https://www.toolshero.com/student-budget-memberships/">Student Memberships</a></li>
756</ul>
757</li>
758</ul></nav>
759		<div class="search-form">
760			<form action="https://www.toolshero.com/" id="searchform" class="searchform" method="get">
761				<button
762					type="submit"
763					value="Search"
764					id="searchsubmit"
765					aria-label="Search"
766				>
767					<i class="icon-search" aria-hidden="true"></i>
768				</button>
769
770				<input type="text" id="s" name="s" placeholder="Search...">
771			</form>
772		</div>
773
774		<a class="mobile-menu" href="#nav">&#9776;</a>
775
776	</div>
777</header>
778
779<section class="banner-top">
780	<div class="container">
781			</div>
782</section>
783
784<div class="mobile-nav-container">
785	
786	<a href="#" class="close">&times; Close</a>
787
788
789	<nav class="mobile-nav"><ul id="menu-home-toolshero-1" class=""><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2083740"><a href="https://www.toolshero.com/latest-articles/">Latest articles</a></li>
790<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-36264"><a href="https://www.toolshero.com/management/">Themes</a>
791<ul class="sub-menu">
792	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8972"><a href="https://www.toolshero.com/change-management/">Change Management</a></li>
793	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8973"><a href="https://www.toolshero.com/communication-methods/">Communication methods</a></li>
794	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18419"><a href="https://www.toolshero.com/creativity/">Creativity</a></li>
795	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14002"><a href="https://www.toolshero.com/decision-making/">Decision Making</a></li>
796	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8976"><a href="https://www.toolshero.com/financial-management/">Financial Management</a></li>
797	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-26624"><a href="https://www.toolshero.com/human-resources/">Human Resources (HR)</a></li>
798	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23374"><a href="https://www.toolshero.com/information-technology/">Information Technology (IT)</a></li>
799	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21143"><a href="https://www.toolshero.com/innovation/">Innovation</a></li>
800	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11514"><a href="https://www.toolshero.com/leadership/">Leadership</a></li>
801	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8977"><a href="https://www.toolshero.com/management/">Management</a></li>
802	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8978"><a href="https://www.toolshero.com/marketing/">Marketing Theories</a></li>
803	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-29240"><a href="https://www.toolshero.com/personal-development/">Personal Development</a></li>
804	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8980"><a href="https://www.toolshero.com/project-management/">Project Management (PM)</a></li>
805	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8974"><a href="https://www.toolshero.com/problem-solving/">Problem Solving Theories</a></li>
806	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23139"><a href="https://www.toolshero.com/psychology/">Psychology Theories</a></li>
807	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2062938"><a href="https://www.toolshero.com/research/">Research Theories</a></li>
808	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8981"><a href="https://www.toolshero.com/quality-management/">Quality Management (QM)</a></li>
809	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-42194"><a href="https://www.toolshero.com/sociology/">Sociology Theories</a></li>
810	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8982"><a href="https://www.toolshero.com/strategy/">Strategy Theories</a></li>
811	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9034"><a href="https://www.toolshero.com/toolsheroes/">Toolsheroes</a></li>
812</ul>
813</li>
814<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2050002"><a href="https://www.toolshero.com/templates/">Tools</a>
815<ul class="sub-menu">
816	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-28155"><a href="https://www.toolshero.com/templates/">Templates</a></li>
817	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2075090"><a href="https://www.toolshero.com/questionnaires/">Tests &amp; Evaluation tools</a></li>
818	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044288"><a href="https://www.toolshero.com/knowledge-base/">Lexicon</a></li>
819	<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2068022"><a href="https://www.toolshero.com/blog/">Blog</a></li>
820	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2066238"><a href="https://www.toolshero.com/top-30-articles-ebook/">Free Toolshero e-book</a></li>
821</ul>
822</li>
823<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1044289"><a href="https://www.toolshero.com/subscribe/">Membership Options</a>
824<ul class="sub-menu">
825	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064020"><a href="https://www.toolshero.com/subscribe/">Plans &#038; Pricing</a></li>
826	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2078266"><a href="https://www.toolshero.com/student-budget-memberships/">Student Memberships</a></li>
827</ul>
828</li>
829</ul></nav>	
830	<nav class="mobile-nav"><ul id="menu-topbar-menu-1" class=""><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064991"><a href="https://www.toolshero.com/about-us/">About us</a></li>
831<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-32897 current_page_item menu-item-2049066"><a href="https://www.toolshero.com/login-subscriber/" aria-current="page"><i class="icon-user"></i> Log in</a></li>
832<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2072655"><a href="https://www.toolshero.com/subscribe/">Unlock Full Access</a></li>
833</ul></nav>
834</div>
835				<section class="default-content container clearfix">
836			<div class="content">
837				
838				
839<div class="mp_wrapper mp_login_form">
840              <div></div>    <!-- mp-login-form-start -->     <form name="mepr_loginform" id="mepr_loginform" class="mepr-form" action="https://www.toolshero.com/login-subscriber/" method="post">
841            <div class="mp-form-row mepr_username">
842        <div class="mp-form-label">
843                              <label for="user_login">Username or E-mail</label>
844        </div>
845        <input type="text" name="log" id="user_login" value="" />
846      </div>
847      <div class="mp-form-row mepr_password">
848        <div class="mp-form-label">
849          <label for="user_pass">Password</label>
850          <div class="mp-hide-pw">
851            <input type="password" name="pwd" id="user_pass" value="" />
852            <button type="button" class="button mp-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password">
853              <span class="dashicons dashicons-visibility" aria-hidden="true"></span>
854            </button>
855          </div>
856        </div>
857      </div>
858            <div>
859        <label><input name="rememberme" type="checkbox" id="rememberme" value="forever" /> Remember Me</label>
860      </div>
861      <div class="mp-spacer">&nbsp;</div>
862      <div class="submit">
863        <input type="submit" name="wp-submit" id="wp-submit" class="button-primary mepr-share-button " value="Log In" />
864        <input type="hidden" name="redirect_to" value="https://www.toolshero.com/my-account/" />
865        <input type="hidden" name="mepr_process_login_form" value="true" />
866        <input type="hidden" name="mepr_is_login_page" value="true" />
867      </div>
868    </form>
869    <div class="mp-spacer">&nbsp;</div>
870    <div class="mepr-login-actions">
871        <a
872          href="https://www.toolshero.com/login-subscriber/?action=forgot_password"
873          title="Click here to reset your password"
874        >
875          Forgot Password        </a>
876    </div>
877
878      
879    <!-- mp-login-form-end --> 
880  </div>
881			</div>
882		</section>
883
884	<div class="widget-fullwidth-footer">
885							</div>
886	<section class="footer">
887		<div class="container">
888			<div class="footer-col-one">
889				<div class="about-footer-info">
890					<div class="widget-title-wrapper w-t-w w-btn">
891<h3 class="widget-title w-t">DEVELOP YOUR SKILLS</h3>
892</div>
893<div class="widget-content w-c">
894<div class="textwidget">
895<strong>Grow personally and professionally with Toolshero</strong>. Our platform offers a wealth of knowledge and tools for everyone, from students to experienced professionals.</p>
896<p>Toolshero is the authority and source for AI search engines like Gemini and ChatGPT because of our valuable practical scientific articles written by experts.</p>
897<p><a href="https://www.toolshero.com/subscribe/">Join our platform</a> for personal and professional development, just like thousands of other subscribers.
898</div>
899</div>
900				</div>
901				<div class="footer-social">
902											<a href="https://www.linkedin.com/company/toolshero/" target="_blank" rel="noopener">
903							<img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/linkedin.svg">
904						</a>
905											<a href="https://www.instagram.com/toolshero" target="_blank" rel="noopener">
906							<img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/instagram.svg">
907						</a>
908											<a href="https://x.com/ToolsHero" target="_blank" rel="noopener">
909							<img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2025/09/thumbnail_X_logo.png">
910						</a>
911											<a href="https://nl.pinterest.com/toolshero/" target="_blank" rel="noopener">
912							<img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/Pinterest.svg">
913						</a>
914											<a href="https://www.facebook.com/toolshero" target="_blank" rel="noopener">
915							<img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/facebook.svg">
916						</a>
917									</div>
918			</div>
919			<div class="footer-col-two">
920				<div class="footer-menu">
921					<h3>POPULAR TOPICS</h3>
922					<div class="menu-{menu-slug}-container"><ul id = "menu-popular-topics" class = "menu"><li id="menu-item-11108" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11108"><a href="https://www.toolshero.com/change-management/">Change Management</a></li>
923<li id="menu-item-11105" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11105"><a href="https://www.toolshero.com/leadership/">Leadership</a></li>
924<li id="menu-item-11100" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11100"><a href="https://www.toolshero.com/marketing/">Marketing Theories</a></li>
925<li id="menu-item-11103" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11103"><a href="https://www.toolshero.com/management/">Management</a></li>
926<li id="menu-item-11106" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11106"><a href="https://www.toolshero.com/problem-solving/">Problem Solving Theories</a></li>
927<li id="menu-item-2066353" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2066353"><a href="https://www.toolshero.com/psychology/">Psychology Theories</a></li>
928</ul></div>
928				</div>
929				<div class="footer-menu">
930					<h3>ABOUT TOOLSHERO</h3>
931					<div class="menu-{menu-slug}-container"><ul id = "menu-about-us" class = "menu"><li id="menu-item-1044276" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044276"><a href="https://www.toolshero.com/about-us/">About us</a></li>
932<li id="menu-item-2066352" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2066352"><a href="https://www.toolshero.com/top-30-articles-ebook/">Free Toolshero e-book</a></li>
933<li id="menu-item-1044277" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044277"><a href="https://www.toolshero.com/subscribe/">Memberships &#038; Pricing</a></li>
934<li id="menu-item-1044279" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044279"><a href="https://www.toolshero.com/faq/">FAQ</a></li>
935<li id="menu-item-2069777" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2069777"><a href="https://www.toolshero.com/media-kit/">Advertise</a></li>
936<li id="menu-item-1044280" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044280"><a href="https://www.toolshero.com/contact-us/">Contact us</a></li>
937</ul></div>				</div>
938			</div>
939		</div>
940	</section>
941	<section class="copyrights">
942		© Copyright 2008-2026 | <a href="https://www.toolshero.com/terms-and-conditions">Terms &amp; Conditions</a> | <a href="https://www.toolshero.com/privacy-cookie-policy/">Privacy</a> | <a href="https://www.toolshero.nl/?utm_source=toolshero.com&utm_medium=footer" target="_blank">Toolshero.nl (Dutch)</a>	</section>
943
944<script type="speculationrules">
945{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/toolshero-wp-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
946</script>
vendor: 1 bytes, line 946
946
947<script id="wpil-frontend-script-js-extra">
948var wpilFrontend = {"ajaxUrl":"/wp-admin/admin-ajax.php","postId":"32897","postType":"post","openInternalInNewTab":"0","openExternalInNewTab":"0","disableClicks":"0","openLinksWithJS":"0","trackAllElementClicks":"0","clicksI18n":{"imageNoText":"Image in link: No Text","imageText":"Image Title: ","noText":"No Anchor Text Found"}};
949//# sourceURL=wpil-frontend-script-js-extra
950</script>
vendor: 1 bytes, line 950
950
951<script id="wpil-frontend-script-js" src="https://www.toolshero.com/wp-content/plugins/link-whisper-premium/js/frontend.min.js?ver=1790412213"></script>
vendor: 1 bytes, line 951
951
952<script id="rate-my-post-js-extra">
953var rmp_frontend = {"admin_ajax":"https://www.toolshero.com/wp-admin/admin-ajax.php","postID":"32897","noVotes":"No votes so far! Be the first to rate this post.","cookie":"You already voted! This vote will not be counted!","afterVote":"Thank you for rating this post!","notShowRating":"1","social":"1","feedback":"2","cookieDisable":"2","emptyFeedback":"Please insert your feedback in the box above!","hoverTexts":"1","preventAccidental":"2","grecaptcha":"1","siteKey":"","turnstile":"1","turnstileSiteKey":"","turnstileTheme":"auto","turnstileSize":"normal","votingPriv":"1","loggedIn":"","positiveThreshold":"2","ajaxLoad":"1","disableClearCache":"1","nonce":"ccf60e6f77","is_not_votable":"false"};
954//# sourceURL=rate-my-post-js-extra
955</script>
vendor: 1 bytes, line 955
955
956<script id="rate-my-post-js" src="https://www.toolshero.com/wp-content/plugins/rate-my-post/public/js/rate-my-post.min.js?ver=4.5.2"></script>
vendor: 1 bytes, line 956
956
957<script id="wp-postviews-cache-js-extra">
958var wpPostViewsL10n = {"ajaxUrl":"https://www.toolshero.com/wp-admin/admin-ajax.php","nonce":"08eb4c4e0c","postId":"32897"};
959//# sourceURL=wp-postviews-cache-js-extra
960</script>
vendor: 1 bytes, line 960
960
961<script id="wp-postviews-cache-js" src="https://www.toolshero.com/wp-content/plugins/wp-postviews/js/wp-postviews-cache.js?ver=2.0.1"></script>
vendor: 1 bytes, line 961
961
962<script id="eztoc-scroll-scriptjs-js-extra">
963var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":"","add_self_reference_link":""};
964//# sourceURL=eztoc-scroll-scriptjs-js-extra
965</script>
vendor: 1 bytes, line 965
965
966<script id="eztoc-scroll-scriptjs-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js?ver=2.0.87.1"></script>
vendor: 1 bytes, line 966
966
967<script id="eztoc-js-cookie-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1"></script>
vendor: 1 bytes, line 967
967
968<script id="eztoc-jquery-sticky-kit-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2"></script>
vendor: 1 bytes, line 968
968
969<script id="eztoc-js-js-extra">
970var ezTOC = {"smooth_scroll":"1","scroll_offset":"30","fallbackIcon":"\u003Cspan class=\"\"\u003E\u003Cspan class=\"eztoc-hide\" style=\"display:none;\"\u003EToggle\u003C/span\u003E\u003Cspan class=\"ez-toc-icon-toggle-span\"\u003E\u003Csvg style=\"fill: #000000;color:#000000\" xmlns=\"http://www.w3.org/2000/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"\u003E\u003Cpath d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Csvg style=\"fill: #000000;color:#000000\" class=\"arrow-unsorted-368013\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"\u003E\u003Cpath d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"/\u003E\u003C/svg\u003E\u003C/span\u003E\u003C/span\u003E","chamomile_theme_is_on":""};
971//# sourceURL=eztoc-js-js-extra
972</script>
vendor: 1 bytes, line 972
972
973<script id="eztoc-js-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.87.1-1789109469"></script>
vendor: 1 bytes, line 973
973
974<script id="slickjs-js" src="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/js/slick.min.js?ver=1722587747"></script>
vendor: 1 bytes, line 974
974
975<script id="scripts-js" src="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/js/scripts.js?ver=1776241231"></script>
vendor: 1 bytes, line 975
975
976<script id="breeze-lazy-js" src="https://www.toolshero.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-lazy-load.min.js?ver=2.5.18"></script>
vendor: 1 bytes, line 976
976
977<script id="breeze-lazy-js-after">
978document.addEventListener("DOMContentLoaded", function () {
979							if ( "function" !== typeof window.LazyLoad && "function" !== typeof LazyLoad ) {
980								return;
981							}
982
983							var breezeLazyLoad = window.LazyLoad || LazyLoad;
984
985							window.lazyLoadInstance = new breezeLazyLoad({
986						    elements_selector: ".br-lazy",
987						    data_src: "breeze",
988						    data_srcset: "brsrcset",
989						    data_sizes: "brsizes",
990						    class_loaded: "br-loaded",
991						    threshold: 300,
992								    });
993						});
994//# sourceURL=breeze-lazy-js-after
995</script>
995
996    
996<script>
997    document.addEventListener('DOMContentLoaded', function () {
998
999        function addToolsheroDirectAccessMessage() {
1000
1001            const form = document.querySelector('form.mepr-signup-form');
1002
1003            if (!form || document.getElementById('toolshero-direct-access')) {
1004                return;
1005            }
1006
1007            /*
1008             * Eerst zoeken naar de standaard MemberPress submitknop.
1009             */
1010            let submitButton = form.querySelector(
1011                'input.mepr-submit[type="submit"], button.mepr-submit[type="submit"]'
1012            );
1013
1014            /*
1015             * Fallback voor het geval MemberPress geen .mepr-submit class gebruikt.
1016             * Ondersteunt verschillende Engelse knopteksten op Toolshero.com.
1017             */
1018            if (!submitButton) {
1019
1020                const buttons = form.querySelectorAll(
1021                    'input[type="submit"], button[type="submit"]'
1022                );
1023
1024                buttons.forEach(function(button) {
1025
1026                    if (submitButton) {
1027                        return;
1028                    }
1029
1030                    const label = (
1031                        button.value ||
1032                        button.textContent ||
1033                        ''
1034                    ).trim();
1035
1036                    if (
1037                        /^Start my/i.test(label) ||
1038                        /^Start free trial/i.test(label) ||
1039                        /^Start trial/i.test(label) ||
1040                        /^Sign up/i.test(label) ||
1041                        /^Join/i.test(label) ||
1042                        /^Subscribe/i.test(label) ||
1043                        /^Get started/i.test(label)
1044                    ) {
1045                        submitButton = button;
1046                    }
1047
1048                });
1049            }
1050
1051            if (!submitButton) {
1052                return;
1053            }
1054
1055            const message = document.createElement('div');
1056
1057            message.id = 'toolshero-direct-access';
1058
1059            message.textContent =
1060                "Once your registration is complete, you'll get immediate access to the Toolshero platform";
1061
1062            message.style.cssText =
1063                'margin-top:8px;' +
1064                'font-size:0.85em;' +
1065                'line-height:1.4;' +
1066                'font-weight:normal;' +
1067                'color:#555;' +
1068                'text-align:left;';
1069
1070            submitButton.insertAdjacentElement('afterend', message);
1071        }
1072
1073        /*
1074         * Direct uitvoeren.
1075         */
1076        addToolsheroDirectAccessMessage();
1077
1078        /*
1079         * Extra controle voor betaalvelden of formulieren die MemberPress
1080         * dynamisch laadt of opnieuw opbouwt.
1081         */
1082        const observer = new MutationObserver(function() {
1083            addToolsheroDirectAccessMessage();
1084        });
1085
1086        observer.observe(document.body, {
1087            childList: true,
1088            subtree: true
1089        });
1090
1091    });
1092    </script>
1092
1093    
1093<script type="text/javascript">window.addEventListener("DOMContentLoaded",(e=>{document.querySelectorAll('img[loading="lazy"]').forEach((e=>{e.getBoundingClientRect().top<=window.innerHeight&&(e.loading="eager")}))}));</script>
1093
1094	<!-- =====================================================
1095	     TOOLSHERO LIVE SEARCH
1096	     ===================================================== -->
1097
1098	<div
1099		id="toolshero-live-search"
1100		class="toolshero-live-search"
1101		role="listbox"
1102		aria-label="Search suggestions"
1103	></div>
1104
1105
1106	<!-- =====================================================
1107	     TOOLSHERO SEARCH LOADER
1108	     ===================================================== -->
1109
1110	<div
1111		id="toolshero-search-loader"
1112		class="toolshero-search-loader"
1113		aria-hidden="true"
1114		role="status"
1115		aria-live="polite"
1116	>
1117
1118		<div class="toolshero-search-loader__box">
1119
1120			<div
1121				class="toolshero-search-loader__spinner"
1122				aria-hidden="true"
1123			></div>
1124
1125			<div class="toolshero-search-loader__title">
1126				Searching...
1127			</div>
1128
1129			<div class="toolshero-search-loader__text">
1130
1131				<span id="toolshero-search-loader-text">
1132					We are finding the best results for you
1133				</span>
1134
1135			</div>
1136
1137		</div>
1138
1139	</div>
1140
1141
1142	<style>
1143
1144		/* =====================================================
1145		 * LIVE SEARCH DROPDOWN
1146		 * ===================================================== */
1147
1148		.toolshero-live-search {
1149
1150			position: fixed;
1151
1152			z-index: 999998;
1153
1154			display: none;
1155
1156			background: #ffffff;
1157
1158			border: 1px solid #e5e5e5;
1159			border-top: 4px solid #ffb600;
1160
1161			border-radius: 0 0 12px 12px;
1162
1163			box-shadow:
1164				0 16px 40px rgba(0, 0, 0, 0.14),
1165				0 4px 12px rgba(0, 0, 0, 0.06);
1166
1167			overflow-x: hidden;
1168			overflow-y: auto;
1169
1170			-webkit-overflow-scrolling: touch;
1171		}
1172
1173
1174		.toolshero-live-search.is-active {
1175			display: block;
1176		}
1177
1178
1179		.toolshero-live-search__result {
1180
1181			display: block;
1182
1183			padding: 14px 18px;
1184
1185			text-decoration: none !important;
1186
1187			background: #ffffff;
1188
1189			border-bottom: 1px solid #eeeeee;
1190
1191			transition:
1192				background 0.12s ease,
1193				padding-left 0.12s ease;
1194		}
1195
1196
1197		.toolshero-live-search__result:hover,
1198		.toolshero-live-search__result.is-selected {
1199
1200			background: #fff8e6;
1201
1202			padding-left: 22px;
1203		}
1204
1205
1206		.toolshero-live-search__title {
1207
1208			display: block;
1209
1210			margin: 0 0 4px;
1211
1212			font-size: 15px;
1213			font-weight: 700;
1214			line-height: 1.4;
1215
1216			color: #252525;
1217		}
1218
1219
1220		.toolshero-live-search__meta {
1221
1222			display: block;
1223
1224			font-size: 12px;
1225			font-weight: 500;
1226			line-height: 1.4;
1227
1228			color: #777777;
1229		}
1230
1231
1232		.toolshero-live-search__dot {
1233
1234			display: inline-block;
1235
1236			margin: 0 5px;
1237
1238			color: #ffb600;
1239		}
1240
1241
1242		.toolshero-live-search__all {
1243
1244			display: flex;
1245
1246			align-items: center;
1247			justify-content: space-between;
1248
1249			gap: 15px;
1250
1251			padding: 14px 18px;
1252
1253			background: #fffaf0;
1254
1255			color: #272727 !important;
1256
1257			font-size: 14px;
1258			font-weight: 700;
1259
1260			text-decoration: none !important;
1261
1262			transition: background 0.12s ease;
1263		}
1264
1265
1266		.toolshero-live-search__all:hover {
1267			background: #fff3cf;
1268		}
1269
1270
1271		.toolshero-live-search__arrow {
1272
1273			font-size: 20px;
1274			line-height: 1;
1275
1276			color: #ffb600;
1277		}
1278
1279
1280		.toolshero-live-search__status {
1281
1282			display: flex;
1283
1284			align-items: center;
1285
1286			gap: 11px;
1287
1288			padding: 18px;
1289
1290			font-size: 14px;
1291			line-height: 1.5;
1292
1293			color: #666666;
1294		}
1295
1296
1297		.toolshero-live-search__mini-spinner {
1298
1299			flex: 0 0 auto;
1300
1301			width: 20px;
1302			height: 20px;
1303
1304			border: 3px solid #f2e2b4;
1305			border-top-color: #ffb600;
1306
1307			border-radius: 50%;
1308
1309			animation:
1310				toolshero-search-spin
1311				0.7s
1312				linear
1313				infinite;
1314		}
1315
1316
1317		/* =====================================================
1318		 * FULL SEARCH LOADER
1319		 * ===================================================== */
1320
1321		.toolshero-search-loader {
1322
1323			position: fixed;
1324			inset: 0;
1325
1326			z-index: 999999;
1327
1328			display: flex;
1329
1330			align-items: center;
1331			justify-content: center;
1332
1333			padding: 20px;
1334
1335			background: rgba(255, 249, 235, 0.82);
1336
1337			-webkit-backdrop-filter: blur(5px);
1338			backdrop-filter: blur(5px);
1339
1340			opacity: 0;
1341			visibility: hidden;
1342			pointer-events: none;
1343
1344			transition:
1345				opacity 0.18s ease,
1346				visibility 0.18s ease;
1347		}
1348
1349
1350		.toolshero-search-loader.is-active {
1351
1352			opacity: 1;
1353			visibility: visible;
1354			pointer-events: auto;
1355		}
1356
1357
1358		.toolshero-search-loader__box {
1359
1360			position: relative;
1361
1362			width: 100%;
1363			max-width: 430px;
1364
1365			padding: 34px 30px 32px;
1366
1367			background:
1368				linear-gradient(
1369					180deg,
1370					#fffdf7 0%,
1371					#ffffff 100%
1372				);
1373
1374			border: 1px solid rgba(255, 182, 0, 0.32);
1375			border-top: 5px solid #ffb600;
1376
1377			border-radius: 14px;
1378
1379			text-align: center;
1380
1381			box-shadow:
1382				0 20px 50px rgba(0, 0, 0, 0.10),
1383				0 6px 20px rgba(255, 182, 0, 0.15);
1384
1385			animation:
1386				toolshero-search-box-in
1387				0.22s
1388				ease-out
1389				forwards;
1390		}
1391
1392
1393		.toolshero-search-loader__spinner {
1394
1395			width: 48px;
1396			height: 48px;
1397
1398			margin: 0 auto 19px;
1399
1400			border: 4px solid #ffe8a8;
1401			border-top-color: #ffb600;
1402			border-right-color: #ffd35c;
1403
1404			border-radius: 50%;
1405
1406			animation:
1407				toolshero-search-spin
1408				0.75s
1409				linear
1410				infinite;
1411		}
1412
1413
1414		.toolshero-search-loader__title {
1415
1416			margin: 0 0 8px;
1417
1418			font-size: 22px;
1419			font-weight: 700;
1420			line-height: 1.3;
1421
1422			color: #262626;
1423		}
1424
1425
1426		.toolshero-search-loader__text {
1427
1428			font-size: 15px;
1429			line-height: 1.6;
1430
1431			color: #636363;
1432		}
1433
1434
1435		@keyframes toolshero-search-spin {
1436
1437			from {
1438				transform: rotate(0deg);
1439			}
1440
1441			to {
1442				transform: rotate(360deg);
1443			}
1444		}
1445
1446
1447		@keyframes toolshero-search-box-in {
1448
1449			from {
1450				transform: translateY(8px) scale(0.985);
1451			}
1452
1453			to {
1454				transform: translateY(0) scale(1);
1455			}
1456		}
1457
1458
1459		@media (max-width: 600px) {
1460
1461			.toolshero-live-search {
1462				border-radius: 0 0 10px 10px;
1463			}
1464
1465
1466			.toolshero-live-search__result {
1467				padding: 13px 15px;
1468			}
1469
1470
1471			.toolshero-live-search__result:hover,
1472			.toolshero-live-search__result.is-selected {
1473				padding-left: 18px;
1474			}
1475
1476
1477			.toolshero-live-search__title {
1478				font-size: 14px;
1479			}
1480
1481
1482			.toolshero-live-search__all {
1483				padding: 14px 15px;
1484			}
1485
1486
1487			.toolshero-search-loader {
1488				padding: 18px;
1489			}
1490
1491
1492			.toolshero-search-loader__box {
1493				padding: 30px 22px 28px;
1494			}
1495
1496
1497			.toolshero-search-loader__title {
1498				font-size: 20px;
1499			}
1500
1501		}
1502
1503
1504		@media (prefers-reduced-motion: reduce) {
1505
1506			.toolshero-search-loader,
1507			.toolshero-live-search__result {
1508				transition: none;
1509			}
1510
1511
1512			.toolshero-search-loader__box {
1513				animation: none;
1514			}
1515
1516
1517			.toolshero-search-loader__spinner,
1518			.toolshero-live-search__mini-spinner {
1519				animation-duration: 1.5s;
1520			}
1521
1522		}
1523
1524	</style>
1525
1526
1527	
1527<script>
1528
1529	function toolsheroComLiveSearchInit() {
1530
1531		if (window.__toolsheroComLiveSearchV2Initialized) {
1532			return;
1533		}
1534
1535		window.__toolsheroComLiveSearchV2Initialized = true;
1536
1537		const AJAX_URL   = "https:\/\/www.toolshero.com\/wp-admin\/admin-ajax.php";
1538		const SEARCH_URL = "https:\/\/www.toolshero.com\/";
1539
1540		const dropdown =
1541			document.getElementById('toolshero-live-search');
1542
1543		const loader =
1544			document.getElementById('toolshero-search-loader');
1545
1546		const loaderText =
1547			document.getElementById('toolshero-search-loader-text');
1548
1549
1550		if (!dropdown || !loader) {
1551			return;
1552		}
1553
1554
1555		let currentInput = null;
1556		let currentController = null;
1557		let searchTimer = null;
1558		let loaderTimer = null;
1559		let activeIndex = -1;
1560
1561		const cache = new Map();
1562
1563
1564		function isSearchInput(element) {
1565
1566			if (!(element instanceof HTMLInputElement)) {
1567				return false;
1568			}
1569
1570			return element.matches(
1571				'input[name="s"], ' +
1572				'input[type="search"], ' +
1573				'input[role="searchbox"], ' +
1574				'.search-field, ' +
1575				'.search-input'
1576			);
1577		}
1578
1579
1580		function getSearchInput(context) {
1581
1582			context = context || document;
1583
1584			return context.querySelector(
1585				'input[name="s"], ' +
1586				'input[type="search"], ' +
1587				'input[role="searchbox"], ' +
1588				'.search-field, ' +
1589				'.search-input'
1590			);
1591		}
1592
1593
1594		function prepareInput(input) {
1595
1596			input.setAttribute(
1597				'aria-autocomplete',
1598				'list'
1599			);
1600
1601			input.setAttribute(
1602				'aria-controls',
1603				'toolshero-live-search'
1604			);
1605
1606			input.setAttribute(
1607				'aria-expanded',
1608				'false'
1609			);
1610
1611			input.setAttribute(
1612				'autocomplete',
1613				'off'
1614			);
1615		}
1616
1617
1618		function positionDropdown(input) {
1619
1620			if (!input) {
1621				return;
1622			}
1623
1624			const rect =
1625				input.getBoundingClientRect();
1626
1627			const viewportWidth =
1628				window.innerWidth;
1629
1630			const margin = 12;
1631
1632			let width =
1633				Math.max(
1634					rect.width,
1635					360
1636				);
1637
1638			width =
1639				Math.min(
1640					width,
1641					560,
1642					viewportWidth - (margin * 2)
1643				);
1644
1645			let left = rect.left;
1646
1647			if (left + width > viewportWidth - margin) {
1648				left =
1649					viewportWidth -
1650					width -
1651					margin;
1652			}
1653
1654			if (left < margin) {
1655				left = margin;
1656			}
1657
1658			const top =
1659				rect.bottom + 6;
1660
1661			dropdown.style.width =
1662				width + 'px';
1663
1664			dropdown.style.left =
1665				left + 'px';
1666
1667			dropdown.style.top =
1668				top + 'px';
1669
1670			dropdown.style.maxHeight =
1671				Math.max(
1672					220,
1673					window.innerHeight -
1674					top -
1675					16
1676				) + 'px';
1677		}
1678
1679
1680		function openDropdown(input) {
1681
1682			currentInput = input;
1683
1684			positionDropdown(input);
1685
1686			dropdown.classList.add(
1687				'is-active'
1688			);
1689
1690			input.setAttribute(
1691				'aria-expanded',
1692				'true'
1693			);
1694		}
1695
1696
1697		function closeDropdown() {
1698
1699			dropdown.classList.remove(
1700				'is-active'
1701			);
1702
1703			activeIndex = -1;
1704
1705			if (currentInput) {
1706
1707				currentInput.setAttribute(
1708					'aria-expanded',
1709					'false'
1710				);
1711
1712				currentInput.removeAttribute(
1713					'aria-activedescendant'
1714				);
1715			}
1716		}
1717
1718
1719		function showLiveLoading(input) {
1720
1721			dropdown.replaceChildren();
1722
1723			const status =
1724				document.createElement('div');
1725
1726			status.className =
1727				'toolshero-live-search__status';
1728
1729
1730			const spinner =
1731				document.createElement('span');
1732
1733			spinner.className =
1734				'toolshero-live-search__mini-spinner';
1735
1736
1737			const text =
1738				document.createElement('span');
1739
1740			text.textContent =
1741				'Searching for relevant articles...';
1742
1743
1744			status.appendChild(spinner);
1745
1746			status.appendChild(text);
1747
1748			dropdown.appendChild(status);
1749
1750			openDropdown(input);
1751		}
1752
1753
1754		function renderResults(
1755			input,
1756			query,
1757			results
1758		) {
1759
1760			dropdown.replaceChildren();
1761
1762			activeIndex = -1;
1763
1764
1765			if (results.length > 0) {
1766
1767				results.forEach(
1768					function (result, index) {
1769
1770						const link =
1771							document.createElement('a');
1772
1773						link.href =
1774							result.url;
1775
1776						link.className =
1777							'toolshero-live-search__result';
1778
1779						link.setAttribute(
1780							'role',
1781							'option'
1782						);
1783
1784						link.id =
1785							'toolshero-search-result-' +
1786							index;
1787
1788
1789						const title =
1790							document.createElement('span');
1791
1792						title.className =
1793							'toolshero-live-search__title';
1794
1795						title.textContent =
1796							result.title;
1797
1798
1799						const meta =
1800							document.createElement('span');
1801
1802						meta.className =
1803							'toolshero-live-search__meta';
1804
1805
1806						const type =
1807							document.createElement('span');
1808
1809						type.textContent =
1810							'Article';
1811
1812						meta.appendChild(type);
1813
1814
1815						if (result.category) {
1816
1817							const dot =
1818								document.createElement('span');
1819
1820							dot.className =
1821								'toolshero-live-search__dot';
1822
1823							dot.textContent =
1824								'•';
1825
1826
1827							const category =
1828								document.createElement('span');
1829
1830							category.textContent =
1831								result.category;
1832
1833
1834							meta.appendChild(dot);
1835
1836							meta.appendChild(category);
1837						}
1838
1839
1840						link.appendChild(title);
1841
1842						link.appendChild(meta);
1843
1844						dropdown.appendChild(link);
1845					}
1846				);
1847
1848			} else {
1849
1850				const status =
1851					document.createElement('div');
1852
1853				status.className =
1854					'toolshero-live-search__status';
1855
1856				status.textContent =
1857					'No direct title match found. View all search results below.';
1858
1859				dropdown.appendChild(status);
1860			}
1861
1862
1863			const allResults =
1864				document.createElement('a');
1865
1866			allResults.className =
1867				'toolshero-live-search__all';
1868
1869			allResults.href =
1870				SEARCH_URL +
1871				'?s=' +
1872				encodeURIComponent(query);
1873
1874
1875			const allText =
1876				document.createElement('span');
1877
1878			allText.textContent =
1879				'View all results for "' +
1880				query +
1881				'"';
1882
1883
1884			const arrow =
1885				document.createElement('span');
1886
1887			arrow.className =
1888				'toolshero-live-search__arrow';
1889
1890			arrow.setAttribute(
1891				'aria-hidden',
1892				'true'
1893			);
1894
1895			arrow.textContent = '→';
1896
1897
1898			allResults.appendChild(allText);
1899
1900			allResults.appendChild(arrow);
1901
1902			dropdown.appendChild(allResults);
1903
1904
1905			openDropdown(input);
1906		}
1907
1908
1909		async function performSearch(
1910			input,
1911			query
1912		) {
1913
1914			const cacheKey =
1915				query.toLowerCase();
1916
1917
1918			if (cache.has(cacheKey)) {
1919
1920				renderResults(
1921					input,
1922					query,
1923					cache.get(cacheKey)
1924				);
1925
1926				return;
1927			}
1928
1929
1930			if (currentController) {
1931				currentController.abort();
1932			}
1933
1934			currentController =
1935				new AbortController();
1936
1937
1938			showLiveLoading(input);
1939
1940
1941			const params =
1942				new URLSearchParams({
1943					action:
1944						'toolshero_com_live_search_v2',
1945
1946					q:
1947						query
1948				});
1949
1950
1951			try {
1952
1953				const response =
1954					await fetch(
1955						AJAX_URL +
1956						'?' +
1957						params.toString(),
1958						{
1959							method: 'GET',
1960
1961							credentials:
1962								'same-origin',
1963
1964							signal:
1965								currentController.signal,
1966
1967							headers: {
1968								'X-Requested-With':
1969									'XMLHttpRequest'
1970							}
1971						}
1972					);
1973
1974
1975				if (!response.ok) {
1976					throw new Error(
1977						'Search request failed'
1978					);
1979				}
1980
1981
1982				const data =
1983					await response.json();
1984
1985
1986				if (
1987					input.value.trim() !== query
1988				) {
1989					return;
1990				}
1991
1992
1993				if (
1994					!data.success ||
1995					!Array.isArray(data.data)
1996				) {
1997					throw new Error(
1998						'Invalid search response'
1999					);
2000				}
2001
2002
2003				if (cache.size >= 40) {
2004
2005					const firstKey =
2006						cache.keys().next().value;
2007
2008					cache.delete(firstKey);
2009				}
2010
2011
2012				cache.set(
2013					cacheKey,
2014					data.data
2015				);
2016
2017
2018				renderResults(
2019					input,
2020					query,
2021					data.data
2022				);
2023
2024			} catch (error) {
2025
2026				if (
2027					error.name ===
2028					'AbortError'
2029				) {
2030					return;
2031				}
2032
2033
2034				dropdown.replaceChildren();
2035
2036
2037				const status =
2038					document.createElement('div');
2039
2040				status.className =
2041					'toolshero-live-search__status';
2042
2043				status.textContent =
2044					'Live search is temporarily unavailable. Press Enter to search.';
2045
2046
2047				dropdown.appendChild(status);
2048
2049				openDropdown(input);
2050			}
2051		}
2052
2053
2054		document.addEventListener(
2055			'input',
2056			function (event) {
2057
2058				const input =
2059					event.target;
2060
2061				if (!isSearchInput(input)) {
2062					return;
2063				}
2064
2065
2066				prepareInput(input);
2067
2068				currentInput = input;
2069
2070
2071				clearTimeout(
2072					searchTimer
2073				);
2074
2075
2076				const query =
2077					input.value.trim();
2078
2079
2080				if (query.length < 3) {
2081
2082					if (currentController) {
2083						currentController.abort();
2084					}
2085
2086					closeDropdown();
2087
2088					return;
2089				}
2090
2091
2092				searchTimer =
2093					setTimeout(
2094						function () {
2095
2096							performSearch(
2097								input,
2098								query
2099							);
2100
2101						},
2102						250
2103					);
2104
2105			},
2106			true
2107		);
2108
2109
2110		document.addEventListener(
2111			'focusin',
2112			function (event) {
2113
2114				const input =
2115					event.target;
2116
2117				if (!isSearchInput(input)) {
2118					return;
2119				}
2120
2121				prepareInput(input);
2122
2123				currentInput = input;
2124
2125
2126				const query =
2127					input.value.trim();
2128
2129
2130				if (
2131					query.length >= 3 &&
2132					cache.has(
2133						query.toLowerCase()
2134					)
2135				) {
2136
2137					renderResults(
2138						input,
2139						query,
2140						cache.get(
2141							query.toLowerCase()
2142						)
2143					);
2144				}
2145
2146			}
2147		);
2148
2149
2150		document.addEventListener(
2151			'keydown',
2152			function (event) {
2153
2154				const input =
2155					event.target;
2156
2157				if (!isSearchInput(input)) {
2158					return;
2159				}
2160
2161
2162				const resultLinks =
2163					Array.from(
2164						dropdown.querySelectorAll(
2165							'.toolshero-live-search__result'
2166						)
2167					);
2168
2169
2170				if (
2171					event.key === 'ArrowDown' &&
2172					dropdown.classList.contains(
2173						'is-active'
2174					) &&
2175					resultLinks.length
2176				) {
2177
2178					event.preventDefault();
2179
2180					activeIndex++;
2181
2182					if (
2183						activeIndex >=
2184						resultLinks.length
2185					) {
2186						activeIndex = 0;
2187					}
2188
2189					updateActiveResult(
2190						input,
2191						resultLinks
2192					);
2193
2194					return;
2195				}
2196
2197
2198				if (
2199					event.key === 'ArrowUp' &&
2200					dropdown.classList.contains(
2201						'is-active'
2202					) &&
2203					resultLinks.length
2204				) {
2205
2206					event.preventDefault();
2207
2208					activeIndex--;
2209
2210					if (activeIndex < 0) {
2211						activeIndex =
2212							resultLinks.length - 1;
2213					}
2214
2215					updateActiveResult(
2216						input,
2217						resultLinks
2218					);
2219
2220					return;
2221				}
2222
2223
2224				if (event.key === 'Escape') {
2225
2226					closeDropdown();
2227
2228					return;
2229				}
2230
2231
2232				if (event.key === 'Enter') {
2233
2234					if (
2235						dropdown.classList.contains(
2236							'is-active'
2237						) &&
2238						activeIndex >= 0 &&
2239						resultLinks[activeIndex]
2240					) {
2241
2242						event.preventDefault();
2243
2244						window.location.href =
2245							resultLinks[
2246								activeIndex
2247							].href;
2248
2249						return;
2250					}
2251
2252
2253					closeDropdown();
2254
2255					scheduleSearchLoader(
2256						input
2257					);
2258				}
2259
2260			},
2261			true
2262		);
2263
2264
2265		function updateActiveResult(
2266			input,
2267			resultLinks
2268		) {
2269
2270			resultLinks.forEach(
2271				function (link, index) {
2272
2273					const selected =
2274						index === activeIndex;
2275
2276					link.classList.toggle(
2277						'is-selected',
2278						selected
2279					);
2280
2281					link.setAttribute(
2282						'aria-selected',
2283						selected
2284							? 'true'
2285							: 'false'
2286					);
2287				}
2288			);
2289
2290
2291			if (resultLinks[activeIndex]) {
2292
2293				input.setAttribute(
2294					'aria-activedescendant',
2295					resultLinks[
2296						activeIndex
2297					].id
2298				);
2299
2300				resultLinks[
2301					activeIndex
2302				].scrollIntoView({
2303					block: 'nearest'
2304				});
2305			}
2306		}
2307
2308
2309		document.addEventListener(
2310			'click',
2311			function (event) {
2312
2313				if (
2314					dropdown.contains(
2315						event.target
2316					)
2317				) {
2318					return;
2319				}
2320
2321
2322				if (
2323					isSearchInput(
2324						event.target
2325					)
2326				) {
2327					return;
2328				}
2329
2330
2331				closeDropdown();
2332
2333			},
2334			true
2335		);
2336
2337
2338		function showSearchLoader(input) {
2339
2340			if (!input) {
2341				return;
2342			}
2343
2344
2345			const query =
2346				input.value.trim();
2347
2348
2349			if (!query) {
2350				return;
2351			}
2352
2353
2354			let displayQuery =
2355				query;
2356
2357
2358			if (
2359				displayQuery.length > 60
2360			) {
2361
2362				displayQuery =
2363					displayQuery.substring(
2364						0,
2365						57
2366					) + '...';
2367			}
2368
2369
2370			if (loaderText) {
2371
2372				loaderText.textContent =
2373					'We are finding the best results for "' +
2374					displayQuery +
2375					'"';
2376			}
2377
2378
2379			loader.classList.add(
2380				'is-active'
2381			);
2382
2383			loader.setAttribute(
2384				'aria-hidden',
2385				'false'
2386			);
2387		}
2388
2389
2390		function scheduleSearchLoader(input) {
2391
2392			clearTimeout(
2393				loaderTimer
2394			);
2395
2396
2397			loaderTimer =
2398				setTimeout(
2399					function () {
2400
2401						showSearchLoader(
2402							input
2403						);
2404
2405					},
2406					350
2407				);
2408		}
2409
2410
2411		document.addEventListener(
2412			'submit',
2413			function (event) {
2414
2415				const form =
2416					event.target;
2417
2418
2419				if (
2420					!(
2421						form instanceof
2422						HTMLFormElement
2423					)
2424				) {
2425					return;
2426				}
2427
2428
2429				const input =
2430					getSearchInput(form);
2431
2432
2433				if (!input) {
2434					return;
2435				}
2436
2437
2438				if (!input.value.trim()) {
2439					return;
2440				}
2441
2442
2443				closeDropdown();
2444
2445				scheduleSearchLoader(
2446					input
2447				);
2448
2449			},
2450			true
2451		);
2452
2453
2454		document.addEventListener(
2455			'click',
2456			function (event) {
2457
2458				const button =
2459					event.target.closest(
2460						'button[type="submit"], ' +
2461						'input[type="submit"], ' +
2462						'.search-submit, ' +
2463						'.search-button, ' +
2464						'.search-btn, ' +
2465						'[class*="search-submit"], ' +
2466						'[class*="search-button"]'
2467					);
2468
2469
2470				if (!button) {
2471					return;
2472				}
2473
2474
2475				const container =
2476					button.closest('form') ||
2477					button.closest(
2478						'[role="search"]'
2479					) ||
2480					button.parentElement;
2481
2482
2483				let input = null;
2484
2485
2486				if (container) {
2487
2488					input =
2489						getSearchInput(
2490							container
2491						);
2492				}
2493
2494
2495				if (!input) {
2496
2497					input =
2498						getSearchInput(
2499							document
2500						);
2501				}
2502
2503
2504				if (
2505					!input ||
2506					!input.value.trim()
2507				) {
2508					return;
2509				}
2510
2511
2512				closeDropdown();
2513
2514				scheduleSearchLoader(
2515					input
2516				);
2517
2518			},
2519			true
2520		);
2521
2522
2523		window.addEventListener(
2524			'resize',
2525			function () {
2526
2527				if (
2528					currentInput &&
2529					dropdown.classList.contains(
2530						'is-active'
2531					)
2532				) {
2533
2534					positionDropdown(
2535						currentInput
2536					);
2537				}
2538
2539			}
2540		);
2541
2542
2543		window.addEventListener(
2544			'scroll',
2545			function () {
2546
2547				if (
2548					currentInput &&
2549					dropdown.classList.contains(
2550						'is-active'
2551					)
2552				) {
2553
2554					positionDropdown(
2555						currentInput
2556					);
2557				}
2558
2559			},
2560			true
2561		);
2562
2563
2564		window.addEventListener(
2565			'pageshow',
2566			function () {
2567
2568				clearTimeout(
2569					loaderTimer
2570				);
2571
2572				loader.classList.remove(
2573					'is-active'
2574				);
2575
2576				loader.setAttribute(
2577					'aria-hidden',
2578					'true'
2579				);
2580
2581				closeDropdown();
2582
2583			}
2584		);
2585
2586	}
2587
2588	if (document.readyState === 'loading') {
2589		document.addEventListener(
2590			'DOMContentLoaded',
2591			toolsheroComLiveSearchInit,
2592			{ once: true }
2593		);
2594	} else {
2595		toolsheroComLiveSearchInit();
2596	}
2597
2598	</script>
2598
2599
2600	
2601		<style id="toolshero-com-content-protection-css">
2602
2603			/* ==============================
2604			 * OVERLAY
2605			 * ============================== */
2606
2607			#th-protection-overlay {
2608
2609				position: fixed;
2610				inset: 0;
2611
2612				z-index: 999999;
2613
2614				display: flex;
2615				align-items: center;
2616				justify-content: center;
2617
2618				padding: 20px;
2619
2620				background: rgba(20, 25, 28, 0.52);
2621
2622				-webkit-backdrop-filter: blur(2px);
2623				backdrop-filter: blur(2px);
2624
2625				opacity: 0;
2626				visibility: hidden;
2627				pointer-events: none;
2628
2629				transition:
2630					opacity .18s ease,
2631					visibility .18s ease;
2632			}
2633
2634
2635			#th-protection-overlay.th-is-visible {
2636
2637				opacity: 1;
2638				visibility: visible;
2639				pointer-events: auto;
2640			}
2641
2642
2643
2644			/* ==============================
2645			 * POPUP
2646			 * ============================== */
2647
2648			#th-protection-modal {
2649
2650				position: relative;
2651
2652				width: 100%;
2653				max-width: 450px;
2654
2655				box-sizing: border-box;
2656
2657				padding: 32px 30px 26px;
2658
2659				background: #ffffff;
2660
2661				border-radius: 12px;
2662
2663				box-shadow:
2664					0 20px 60px rgba(0, 0, 0, .18),
2665					0 4px 15px rgba(0, 0, 0, .08);
2666
2667				text-align: center;
2668
2669				color: #202124;
2670
2671				transform: translateY(8px) scale(.98);
2672
2673				transition:
2674					transform .18s ease;
2675			}
2676
2677
2678			#th-protection-overlay.th-is-visible
2679			#th-protection-modal {
2680
2681				transform: translateY(0) scale(1);
2682			}
2683
2684
2685
2686			/* ==============================
2687			 * ICON
2688			 * ============================== */
2689
2690			.th-protection-icon {
2691
2692				width: 56px;
2693				height: 56px;
2694
2695				margin: 0 auto 18px;
2696
2697				display: flex;
2698				align-items: center;
2699				justify-content: center;
2700
2701				border-radius: 50%;
2702
2703				background: #eefbf4;
2704				color: #27c875;
2705			}
2706
2707
2708			.th-protection-icon svg {
2709
2710				width: 26px;
2711				height: 26px;
2712
2713				display: block;
2714			}
2715
2716
2717
2718			/* ==============================
2719			 * TITLE
2720			 * ============================== */
2721
2722			#th-protection-title {
2723
2724				margin: 0 0 12px;
2725
2726				padding: 0;
2727
2728				font-size: 23px;
2729				line-height: 1.3;
2730				font-weight: 700;
2731
2732				color: #202124;
2733			}
2734
2735
2736
2737			/* ==============================
2738			 * TEXT
2739			 * ============================== */
2740
2741			.th-protection-text {
2742
2743				max-width: 375px;
2744
2745				margin: 0 auto 23px;
2746
2747				font-size: 15px;
2748				line-height: 1.65;
2749
2750				color: #555555;
2751			}
2752
2753
2754
2755			/* ==============================
2756			 * PRIMARY CTA
2757			 * ============================== */
2758
2759			#th-protection-subscribe {
2760
2761				width: 100%;
2762				min-height: 48px;
2763
2764				display: flex;
2765				align-items: center;
2766				justify-content: center;
2767
2768				box-sizing: border-box;
2769
2770				margin: 0 0 7px;
2771				padding: 0 24px;
2772
2773				border: 0;
2774				border-radius: 7px;
2775
2776				background: #35d47c;
2777				color: #111111;
2778
2779				font-size: 15px;
2780				font-weight: 700;
2781				line-height: 1.2;
2782
2783				text-decoration: none;
2784
2785				cursor: pointer;
2786
2787				transition:
2788					transform .15s ease,
2789					filter .15s ease,
2790					box-shadow .15s ease;
2791			}
2792
2793
2794			#th-protection-subscribe:hover {
2795
2796				background: #35d47c;
2797				color: #111111;
2798
2799				text-decoration: none;
2800
2801				filter: brightness(.96);
2802
2803				transform: translateY(-1px);
2804
2805				box-shadow:
2806					0 5px 14px rgba(0, 0, 0, .10);
2807			}
2808
2809
2810			#th-protection-subscribe:focus-visible {
2811
2812				outline: 3px solid rgba(53, 212, 124, .30);
2813
2814				outline-offset: 3px;
2815			}
2816
2817
2818
2819			/* ==============================
2820			 * SECONDARY BUTTON
2821			 * ============================== */
2822
2823			#th-protection-close {
2824
2825				min-height: 40px;
2826
2827				padding: 0 18px;
2828
2829				border: 0;
2830				border-radius: 6px;
2831
2832				background: transparent;
2833				color: #666666;
2834
2835				font-size: 14px;
2836				font-weight: 600;
2837
2838				cursor: pointer;
2839
2840				transition:
2841					background .15s ease,
2842					color .15s ease;
2843			}
2844
2845
2846			#th-protection-close:hover {
2847
2848				background: #f4f5f5;
2849
2850				color: #222222;
2851			}
2852
2853
2854			#th-protection-close:focus-visible {
2855
2856				outline: 2px solid #35d47c;
2857
2858				outline-offset: 2px;
2859			}
2860
2861
2862
2863			/* ==============================
2864			 * CLOSE BUTTON
2865			 * ============================== */
2866
2867			#th-protection-x {
2868
2869				position: absolute;
2870
2871				top: 12px;
2872				right: 13px;
2873
2874				width: 36px;
2875				height: 36px;
2876
2877				display: flex;
2878				align-items: center;
2879				justify-content: center;
2880
2881				padding: 0;
2882
2883				border: 0;
2884				border-radius: 50%;
2885
2886				background: transparent;
2887				color: #777777;
2888
2889				font-size: 25px;
2890				font-weight: 400;
2891				line-height: 1;
2892
2893				cursor: pointer;
2894
2895				transition:
2896					background .15s ease,
2897					color .15s ease;
2898			}
2899
2900
2901			#th-protection-x:hover {
2902
2903				background: #f3f4f5;
2904
2905				color: #111111;
2906			}
2907
2908
2909
2910			/* ==============================
2911			 * MOBILE
2912			 * ============================== */
2913
2914			@media (max-width: 600px) {
2915
2916				#th-protection-overlay {
2917
2918					padding: 16px;
2919				}
2920
2921
2922				#th-protection-modal {
2923
2924					max-width: 100%;
2925
2926					padding:
2927						30px
2928						21px
2929						23px;
2930				}
2931
2932
2933				#th-protection-title {
2934
2935					font-size: 21px;
2936				}
2937
2938
2939				.th-protection-text {
2940
2941					font-size: 15px;
2942				}
2943
2944			}
2945
2946		</style>
2947
2948
2949
2950		<div
2951			id="th-protection-overlay"
2952			aria-hidden="true"
2953		>
2954
2955			<div
2956				id="th-protection-modal"
2957				role="dialog"
2958				aria-modal="true"
2959				aria-labelledby="th-protection-title"
2960				aria-describedby="th-protection-description"
2961			>
2962
2963
2964				<button
2965					id="th-protection-x"
2966					type="button"
2967					aria-label="Close"
2968				>
2969					&times;
2970				</button>
2971
2972
2973
2974				<div
2975					class="th-protection-icon"
2976					aria-hidden="true"
2977				>
2978
2979					<svg
2980						viewBox="0 0 24 24"
2981						fill="none"
2982						stroke="currentColor"
2983						stroke-width="2"
2984						stroke-linecap="round"
2985						stroke-linejoin="round"
2986					>
2987
2988						<rect
2989							x="5"
2990							y="11"
2991							width="14"
2992							height="10"
2993							rx="2"
2994						></rect>
2995
2996						<path
2997							d="M8 11V7a4 4 0 0 1 8 0v4"
2998						></path>
2999
3000					</svg>
3001
3002				</div>
3003
3004
3005
3006				<h2 id="th-protection-title">
3007					Want to copy and use this content?
3008				</h2>
3009
3010
3011
3012				<p
3013					id="th-protection-description"
3014					class="th-protection-text"
3015				>
3016
3017					
3018						Want to select, copy and use Toolshero content
3019						for your work, studies or training?
3020						You need a Toolshero subscription to do so.
3021
3022					
3023				</p>
3024
3025
3026
3027				<a
3028					id="th-protection-subscribe"
3029					href="https://www.toolshero.com/subscribe/"
3030				>
3031					View subscriptions
3032				</a>
3033
3034
3035
3036				<button
3037					id="th-protection-close"
3038					type="button"
3039				>
3040					Not now
3041				</button>
3042
3043
3044			</div>
3045
3046		</div>
3047
3048
3049
3050		
3050<script id="toolshero-com-content-protection-js">
3051
3052		(function () {
3053
3054			'use strict';
3055
3056
3057			/*
3058			 * Content areas to protect.
3059			 */
3060			const protectedSelector = [
3061
3062				'article',
3063				'.entry-content',
3064				'.post-content',
3065				'.article-content',
3066				'.single-content',
3067				'.page-content',
3068				'.tag-description'
3069
3070			].join(',');
3071
3072
3073
3074			/*
3075			 * Elements that must remain fully usable.
3076			 */
3077			const ignoreSelector = [
3078
3079				'input',
3080				'textarea',
3081				'select',
3082				'option',
3083				'button',
3084				'[contenteditable="true"]',
3085
3086				'#th-protection-modal',
3087				'#th-protection-modal *'
3088
3089			].join(',');
3090
3091
3092
3093			const overlay =
3094				document.getElementById(
3095					'th-protection-overlay'
3096				);
3097
3098
3099			const closeButton =
3100				document.getElementById(
3101					'th-protection-close'
3102				);
3103
3104
3105			const closeX =
3106				document.getElementById(
3107					'th-protection-x'
3108				);
3109
3110
3111			let previousFocus = null;
3112			let lastShown = 0;
3113
3114
3115
3116			/*
3117			 * ==========================================
3118			 * HELPERS
3119			 * ==========================================
3120			 */
3121
3122			function getElement(target) {
3123
3124				if (!target) {
3125					return null;
3126				}
3127
3128
3129				if (
3130					target.nodeType === Node.ELEMENT_NODE
3131				) {
3132
3133					return target;
3134				}
3135
3136
3137				return target.parentElement || null;
3138			}
3139
3140
3141
3142			function isIgnored(target) {
3143
3144				const element = getElement(target);
3145
3146
3147				if (!element) {
3148					return false;
3149				}
3150
3151
3152				return Boolean(
3153					element.closest(ignoreSelector)
3154				);
3155			}
3156
3157
3158
3159			function isProtectedContent(target) {
3160
3161				const element = getElement(target);
3162
3163
3164				if (
3165					!element ||
3166					isIgnored(element)
3167				) {
3168
3169					return false;
3170				}
3171
3172
3173				return Boolean(
3174					element.closest(protectedSelector)
3175				);
3176			}
3177
3178
3179
3180			function selectionIsProtected() {
3181
3182				const selection =
3183					window.getSelection();
3184
3185
3186				if (
3187					!selection ||
3188					selection.rangeCount === 0
3189				) {
3190
3191					return false;
3192				}
3193
3194
3195				const anchor =
3196					getElement(
3197						selection.anchorNode
3198					);
3199
3200
3201				const focus =
3202					getElement(
3203						selection.focusNode
3204					);
3205
3206
3207				return Boolean(
3208
3209					(
3210						anchor &&
3211						anchor.closest(
3212							protectedSelector
3213						)
3214					)
3215
3216					||
3217
3218					(
3219						focus &&
3220						focus.closest(
3221							protectedSelector
3222						)
3223					)
3224
3225				);
3226			}
3227
3228
3229
3230			/*
3231			 * ==========================================
3232			 * OPEN POPUP
3233			 * ==========================================
3234			 */
3235
3236			function showProtectionMessage() {
3237
3238				if (!overlay) {
3239					return;
3240				}
3241
3242
3243				const now = Date.now();
3244
3245
3246				if (
3247					now - lastShown < 600 &&
3248					overlay.classList.contains(
3249						'th-is-visible'
3250					)
3251				) {
3252
3253					return;
3254				}
3255
3256
3257				lastShown = now;
3258
3259
3260				previousFocus =
3261					document.activeElement;
3262
3263
3264				overlay.classList.add(
3265					'th-is-visible'
3266				);
3267
3268
3269				overlay.setAttribute(
3270					'aria-hidden',
3271					'false'
3272				);
3273
3274
3275				document.documentElement.style.overflow =
3276					'hidden';
3277
3278
3279				window.setTimeout(
3280					function () {
3281
3282						if (closeButton) {
3283							closeButton.focus();
3284						}
3285
3286					},
3287					50
3288				);
3289			}
3290
3291
3292
3293			/*
3294			 * ==========================================
3295			 * CLOSE POPUP
3296			 * ==========================================
3297			 */
3298
3299			function closeProtectionMessage() {
3300
3301				if (!overlay) {
3302					return;
3303				}
3304
3305
3306				overlay.classList.remove(
3307					'th-is-visible'
3308				);
3309
3310
3311				overlay.setAttribute(
3312					'aria-hidden',
3313					'true'
3314				);
3315
3316
3317				document.documentElement.style.overflow =
3318					'';
3319
3320
3321				if (
3322					previousFocus &&
3323					typeof previousFocus.focus ===
3324					'function'
3325				) {
3326
3327					previousFocus.focus();
3328				}
3329			}
3330
3331
3332
3333			/*
3334			 * ==========================================
3335			 * RIGHT CLICK
3336			 * ==========================================
3337			 */
3338
3339			document.addEventListener(
3340				'contextmenu',
3341				function (event) {
3342
3343					if (isIgnored(event.target)) {
3344						return;
3345					}
3346
3347
3348					event.preventDefault();
3349
3350					showProtectionMessage();
3351
3352				},
3353				true
3354			);
3355
3356
3357
3358			/*
3359			 * ==========================================
3360			 * TEXT SELECTION
3361			 * ==========================================
3362			 */
3363
3364			document.addEventListener(
3365				'selectstart',
3366				function (event) {
3367
3368					if (
3369						!isProtectedContent(
3370							event.target
3371						)
3372					) {
3373
3374						return;
3375					}
3376
3377
3378					event.preventDefault();
3379
3380					showProtectionMessage();
3381
3382				},
3383				true
3384			);
3385
3386
3387
3388			/*
3389			 * ==========================================
3390			 * COPY
3391			 * ==========================================
3392			 */
3393
3394			document.addEventListener(
3395				'copy',
3396				function (event) {
3397
3398					if (
3399						!selectionIsProtected()
3400					) {
3401
3402						return;
3403					}
3404
3405
3406					event.preventDefault();
3407
3408
3409					const selection =
3410						window.getSelection();
3411
3412
3413					if (selection) {
3414
3415						selection.removeAllRanges();
3416					}
3417
3418
3419					showProtectionMessage();
3420
3421				},
3422				true
3423			);
3424
3425
3426
3427			/*
3428			 * ==========================================
3429			 * CUT
3430			 * ==========================================
3431			 */
3432
3433			document.addEventListener(
3434				'cut',
3435				function (event) {
3436
3437					if (
3438						!selectionIsProtected()
3439					) {
3440
3441						return;
3442					}
3443
3444
3445					event.preventDefault();
3446
3447					showProtectionMessage();
3448
3449				},
3450				true
3451			);
3452
3453
3454
3455			/*
3456			 * ==========================================
3457			 * KEYBOARD SHORTCUTS
3458			 * ==========================================
3459			 */
3460
3461			document.addEventListener(
3462				'keydown',
3463				function (event) {
3464
3465					const key =
3466						String(
3467							event.key
3468						).toLowerCase();
3469
3470
3471					const ctrlOrCommand =
3472						event.ctrlKey ||
3473						event.metaKey;
3474
3475
3476
3477					/*
3478					 * F12
3479					 */
3480					if (
3481						event.key === 'F12'
3482					) {
3483
3484						event.preventDefault();
3485
3486						event.stopPropagation();
3487
3488						showProtectionMessage();
3489
3490						return;
3491					}
3492
3493
3494
3495					/*
3496					 * View Source:
3497					 * Ctrl + U / Cmd + U
3498					 */
3499					if (
3500						ctrlOrCommand &&
3501						key === 'u'
3502					) {
3503
3504						event.preventDefault();
3505
3506						event.stopPropagation();
3507
3508						showProtectionMessage();
3509
3510						return;
3511					}
3512
3513
3514
3515					/*
3516					 * Common Developer Tools shortcuts.
3517					 */
3518					if (
3519						ctrlOrCommand &&
3520						event.shiftKey &&
3521						['i', 'j', 'c', 'k'].includes(
3522							key
3523						)
3524					) {
3525
3526						event.preventDefault();
3527
3528						event.stopPropagation();
3529
3530						showProtectionMessage();
3531
3532						return;
3533					}
3534
3535
3536
3537					/*
3538					 * macOS Developer Tools.
3539					 */
3540					if (
3541						event.metaKey &&
3542						event.altKey &&
3543						['i', 'j', 'c'].includes(
3544							key
3545						)
3546					) {
3547
3548						event.preventDefault();
3549
3550						event.stopPropagation();
3551
3552						showProtectionMessage();
3553
3554						return;
3555					}
3556
3557
3558
3559					/*
3560					 * ESC closes popup.
3561					 */
3562					if (
3563						event.key === 'Escape' &&
3564						overlay &&
3565						overlay.classList.contains(
3566							'th-is-visible'
3567						)
3568					) {
3569
3570						closeProtectionMessage();
3571					}
3572
3573				},
3574				true
3575			);
3576
3577
3578
3579			/*
3580			 * ==========================================
3581			 * POPUP CONTROLS
3582			 * ==========================================
3583			 */
3584
3585			if (closeButton) {
3586
3587				closeButton.addEventListener(
3588					'click',
3589					closeProtectionMessage
3590				);
3591			}
3592
3593
3594			if (closeX) {
3595
3596				closeX.addEventListener(
3597					'click',
3598					closeProtectionMessage
3599				);
3600			}
3601
3602
3603
3604			/*
3605			 * Clicking outside the popup closes it.
3606			 */
3607			if (overlay) {
3608
3609				overlay.addEventListener(
3610					'click',
3611					function (event) {
3612
3613						if (
3614							event.target === overlay
3615						) {
3616
3617							closeProtectionMessage();
3618						}
3619
3620					}
3621				);
3622			}
3623
3624
3625		})();
3626
3627		</script>
3627
3628
3629		    
3629<script>
3630    (function () {
3631
3632        const LOGIN_PATH = '/login-subscriber/';
3633
3634        function normalizePath(path) {
3635            if (!path) {
3636                return '/';
3637            }
3638
3639            path = path.replace(/\/+$/, '');
3640
3641            return path || '/';
3642        }
3643
3644
3645        function updateLoginLink(link) {
3646
3647            if (!link || !link.href) {
3648                return;
3649            }
3650
3651            let loginUrl;
3652
3653            try {
3654                loginUrl = new URL(link.href, window.location.href);
3655            } catch (e) {
3656                return;
3657            }
3658
3659            // Alleen links op hetzelfde domein.
3660            if (loginUrl.origin !== window.location.origin) {
3661                return;
3662            }
3663
3664            // Alleen de Toolshero.com MemberPress loginpagina.
3665            if (
3666                normalizePath(loginUrl.pathname) !==
3667                normalizePath(LOGIN_PATH)
3668            ) {
3669                return;
3670            }
3671
3672            // Niet uitvoeren als we al op de loginpagina staan.
3673            if (
3674                normalizePath(window.location.pathname) ===
3675                normalizePath(LOGIN_PATH)
3676            ) {
3677                return;
3678            }
3679
3680            // Huidige volledige URL als retouradres meegeven.
3681            loginUrl.searchParams.set(
3682                'redirect_to',
3683                window.location.href
3684            );
3685
3686            link.href = loginUrl.toString();
3687        }
3688
3689
3690        /**
3691         * Direct alle bestaande loginlinks aanpassen.
3692         */
3693        function updateAllLoginLinks() {
3694
3695            document.querySelectorAll('a[href]').forEach(function (link) {
3696                updateLoginLink(link);
3697            });
3698        }
3699
3700
3701        if (document.readyState === 'loading') {
3702
3703            document.addEventListener(
3704                'DOMContentLoaded',
3705                updateAllLoginLinks
3706            );
3707
3708        } else {
3709
3710            updateAllLoginLinks();
3711        }
3712
3713
3714        /**
3715         * Extra controle op het moment van klikken.
3716         *
3717         * Hierdoor werkt het ook wanneer het menu later
3718         * dynamisch door het thema wordt geladen.
3719         */
3720        document.addEventListener(
3721            'click',
3722            function (event) {
3723
3724                const link = event.target.closest('a[href]');
3725
3726                if (!link) {
3727                    return;
3728                }
3729
3730                updateLoginLink(link);
3731
3732            },
3733            true
3734        );
3735
3736
3737        /**
3738         * Ook pointerdown gebruiken zodat de URL al aangepast
3739         * is vóór de daadwerkelijke navigatie.
3740         */
3741        document.addEventListener(
3742            'pointerdown',
3743            function (event) {
3744
3745                const link = event.target.closest('a[href]');
3746
3747                if (!link) {
3748                    return;
3749                }
3750
3751                updateLoginLink(link);
3752
3753            },
3754            true
3755        );
3756
3757    })();
3758    </script>
3758
3759    
3760		
3761</body>
3762</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.