File size: 16,826 Bytes
6ffd1fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16455a8
 
6ffd1fb
 
 
 
 
 
 
 
 
 
 
 
 
 
16455a8
6ffd1fb
 
16455a8
 
 
 
 
 
 
6ffd1fb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!doctype html><html lang="en"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>FLSA Payroll Timesheet Plugin for Small US Employers</title><meta name="description" content="One certified timesheet per FLSA workweek, hours in quarter-hour steps, PTO separate. Pro exports the dated CSV you keep 3 years (29 CFR 516.5).">
<style>:root{color-scheme:light dark}
body{font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;margin:0;padding:22px;
 max-width:1000px;margin-inline:auto}
h1{font-size:1.4rem;margin:0 0 .3rem}.sub{opacity:.78;margin:0 0 1.2rem}
.wrap{display:grid;gap:24px;grid-template-columns:1fr 1fr}
@media(max-width:820px){.wrap{grid-template-columns:1fr}}
label{display:block;font-weight:600;margin:.7rem 0 .2rem;font-size:.92rem}
input,select,textarea{width:100%;padding:.5rem .6rem;font:inherit;border:1px solid #8886;
 border-radius:7px;background:transparent;color:inherit}
.card{border:1px solid #8884;border-radius:11px;padding:18px}
.buy{margin-top:20px;border:1px solid #8884;border-radius:11px;padding:16px}
.buy a{display:inline-block;margin-top:.6rem;padding:.55rem 1rem;border:1px solid currentColor;
 border-radius:8px;text-decoration:none;color:inherit;font-weight:600}</style><script data-grow-initializer="">!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement("script");(e.type="text/javascript"),(e.src="https://faves.grow.me/main.js"),(e.defer=!0),e.setAttribute("data-grow-faves-site-id","U2l0ZTphZjljMzgyMC0yMmU5LTRhYjgtYTIxNS03OTRhMGY1N2ExYzM=");var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t);})();</script>
<!--yj-canon-s101--><link rel="canonical" href="https://getreadystack.com/tools/payroll-wordpress-plugin">

<script type="application/ld+json" data-yj="yj-capsule-v1">{"@context": "https://schema.org", "@type": "FAQPage", "inLanguage": "en", "mainEntity": [{"@type": "Question", "name": "What does FLSA Payroll Timesheet Plugin for Small US Employers actually do?", "acceptedAnswer": {"@type": "Answer", "text": "Install the free version and run a real week through it before you decide anything — it's the whole form, not a crippled demo. What it can't do is hand the records back to you: the free version has no dated CSV download, no email alert to the administrator when a timesheet arrives, and no confirmation copy to the employee. So the week someone asks you to produce the file, you're copying rows off an admin screen by hand. Pro exports the dated CSV, mails you every submission, and sends the employee their own copy."}}, {"@type": "Question", "name": "Who is FLSA Payroll Timesheet Plugin for Small US Employers for?", "acceptedAnswer": {"@type": "Answer", "text": "US employers with hourly, nonexempt staff - restaurants, clinics, cleaning and landscaping crews, home care, retail - who already run their own WordPress site, plus the bookkeepers and freelance site builders who set it up for them. Two axes crossed: the US FLSA workweek rule (overtime is computed per workweek and hours may not be averaged across two weeks, 29 CFR 778.104) times the small employer with no HR department, who is the party legally required to produce the records if anyone asks."}}, {"@type": "Question", "name": "What can I do for free, and what needs the paid version?", "acceptedAnswer": {"@type": "Answer", "text": "Right after the first pay period, export the CSV, drop it in the folder your accountant already uses, and put the payroll cutoff in the calendar as a repeating reminder. The FLSA asks the employer to keep payroll records 3 years and the time records behind them 2 years (29 CFR 516.5 and 516.6), so keep each export rather than overwriting the last one."}}, {"@type": "Question", "name": "What would this cost if someone did it for me?", "acceptedAnswer": {"@type": "Answer", "text": "Having this built to order is billed by the hour: freelance WordPress developers openly list about $25 to over $75 an hour on the major freelance marketplaces, and one hour at the top of that published range costs more than this plugin does."}}], "datePublished": "2026-09-25", "dateModified": "2026-09-25", "author": {"@type": "Organization", "name": "ReadyStack", "url": "https://getreadystack.com"}}</script>
</head><body>
<h1>FLSA Payroll Timesheet Plugin for Small US Employers</h1><p class="sub">One certified timesheet per FLSA workweek, hours in quarter-hour steps, PTO separate. Pro exports the dated CSV you keep 3 years (29 CFR 516.5).</p>
<div class="wrap"><form id="f"><label for="i_employee_name">Employee full name (as payroll has it)</label><input id="i_employee_name" data-k="employee_name" type="text">
<label for="i_employee_id">Employee or payroll ID (if your employer uses one)</label><input id="i_employee_id" data-k="employee_id" type="text">
<label for="i_work_email">Work email address for payroll questions</label><input id="i_work_email" data-k="work_email" type="email">
<label for="i_workweek_start">Workweek start date (the same weekday every week)</label><input id="i_workweek_start" data-k="workweek_start" type="date">
<label for="i_hours_worked">Whole hours worked this week (exclude unpaid meal breaks)</label><input id="i_hours_worked" data-k="hours_worked" type="number">
<label for="i_partial_hours">Extra part-hour to the nearest quarter (0.25 = 15 min)</label><select id="i_partial_hours" data-k="partial_hours"><option>0.00</option><option>0.25</option><option>0.50</option><option>0.75</option></select>
<label for="i_pto_hours">Paid time off, holiday or sick hours (whole hours)</label><input id="i_pto_hours" data-k="pto_hours" type="number">
<label for="i_hours_certified">I certify these hours are complete and accurate</label><select id="i_hours_certified" data-k="hours_certified"><option>Yes</option><option>No - my supervisor must review first</option></select>
<label for="i_notes">Missed punches or corrections (optional)</label><textarea id="i_notes" data-k="notes" rows="3"></textarea></form><div class="card"><h3>Payroll Timesheets</h3><p><b>Employee full name (as payroll has it):</b> <span id="o_employee_name"></span></p><p><b>Employee or payroll ID (if your employer uses one):</b> <span id="o_employee_id"></span></p><p><b>Work email address for payroll questions:</b> <span id="o_work_email"></span></p><p><b>Workweek start date (the same weekday every week):</b> <span id="o_workweek_start"></span></p><p><b>Whole hours worked this week (exclude unpaid meal breaks):</b> <span id="o_hours_worked"></span></p><p><b>Extra part-hour to the nearest quarter (0.25 = 15 min):</b> <span id="o_partial_hours"></span></p><p><b>Paid time off, holiday or sick hours (whole hours):</b> <span id="o_pto_hours"></span></p><p><b>I certify these hours are complete and accurate:</b> <span id="o_hours_certified"></span></p><p><b>Missed punches or corrections (optional):</b> <span id="o_notes"></span></p></div></div>
<script>document.getElementById('f').addEventListener('input',function(e){
var k=e.target.getAttribute('data-k');if(!k)return;var o=document.getElementById('o_'+k);
if(o)o.textContent=e.target.value;});</script>
<section data-yj-cta="paid" style="margin:3rem auto;max-width:46rem;padding:1.5rem 1.25rem;border:1px solid #d8dee9;border-radius:12px;background:#fbfcfe;font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif"><h2 style="margin:0 0 .5rem;font-size:1.25rem">Get the complete version <span class="yj-price">$60</span></h2><p style="margin:.25rem 0 1rem;color:#41505f">This page is the working piece. The full pack has everything below.</p><p style="margin:0 0 1rem;color:#41505f">One certified timesheet per FLSA workweek, hours in quarter-hour steps, PTO separate. Pro exports the dated CSV you keep 3 years (29 CFR 516.5).</p><p style="margin:0 0 1rem;color:#5b6b7c;font-size:.94rem">Having this built to order is billed by the hour: freelance WordPress developers openly list about $25 to over $75 an hour on the major freelance marketplaces, and one hour at the top of that published range costs more than this p</p><a href="https://getreadystack.com/api/buy/cl/polar_cl_LeH3OzczvwduGstgkUO4wOF6A9aA5YzT8uMh51jjyA0" rel="nofollow" style="display:inline-block;padding:.7rem 1.3rem;border-radius:8px;background:#1b64f2;color:#fff;text-decoration:none;font-weight:600">Buy the full version — $6</a></section>
<section class="yj-related" style="max-width:920px;margin:56px auto 40px;padding:0 20px"><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:0 0 6px;color:#1b1f24">More from ReadyStack</h2><p style="font:400 14.5px/1.5 system-ui,sans-serif;margin:0 0 20px;color:#5b6570">Ready-to-use files. One-time download, no subscription.</p><div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px"><a class="yj-rel-c" href="https://getreadystack.com/tools/webflow-restaurant-template"><span class="yj-rel-t">Webflow Restaurant Template — Self-Hosted 9-Page Restaurant Website in Plain H</span><span class="yj-rel-p">$49</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/healthcare-icon-pack-ui-kit"><span class="yj-rel-t">Healthcare Icon Pack? Start With the Screen — Patient-Safety UI Kit for Figma </span><span class="yj-rel-p">$168</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/rust-sepa-iban-pruefung-offline"><span class="yj-rel-t">sepa_pruefkit — offline IBAN, BIC, Gläubiger-ID and USt-IdNr checks for German</span><span class="yj-rel-p">$20</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/revit-door-family"><span class="yj-rel-t">Revit Door Family Blocks - 14 ADA-Dimensioned US Commercial Doors (DXF, import</span><span class="yj-rel-p">$100</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/docker-image-for-data-science"><span class="yj-rel-t">Docker Image for Data Science — Reproducible JupyterLab + MLflow Stack (Python</span><span class="yj-rel-p">$19</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/us-rental-income-tracker"><span class="yj-rel-t">US Landlord Rental Income Tracker</span><span class="yj-rel-p">$21</span></a></div><style>.yj-rel-c{display:flex;flex-direction:column;gap:8px;padding:15px 16px;border:1px solid #e2e6ea;border-radius:6px;text-decoration:none;background:#fff}.yj-rel-c:hover{border-color:#b9c2cb;background:#fafbfc}.yj-rel-t{font:500 14.5px/1.42 system-ui,sans-serif;color:#1b1f24}.yj-rel-p{font:600 13px system-ui,sans-serif;color:#0a6238}</style></section><!--yj-share-s101--><div style="margin:28px 0 8px;text-align:center"><button id="yjcp" type="button" style="font:inherit;padding:10px 18px;border:1px solid #8884;border-radius:10px;background:transparent;cursor:pointer">Copy link</button></div><script>(function(){var b=document.getElementById("yjcp");if(!b)return;var t=b.textContent;b.addEventListener("click",function(){var u=location.href.split("#")[0];function d(){b.textContent="Link copied";setTimeout(function(){b.textContent=t;},1800);}if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(u).then(d,function(){prompt("",u);});}else{prompt("",u);}});})();</script>
<div class="yj-home-find"><div class="yj-lgbar"><a href="/" class="yj-lg on">EN</a><a href="/de/" class="yj-lg">DE</a><a href="/ja/" class="yj-lg">JA</a><a href="/es/" class="yj-lg">ES</a><a href="/pt/" class="yj-lg">PT</a></div><section class="yj-find"><h2>Find a tool</h2><input id="yjq" type="search" autocomplete="off" placeholder="Type a product name, format or task"><div id="yjr"></div></section><style>.yj-lgbar{position:absolute;top:14px;right:18px;display:flex;gap:6px;z-index:60}.yj-lg{font:600 12px/1 system-ui,sans-serif;padding:6px 9px;border-radius:4px;text-decoration:none;color:#8b96a3;border:1px solid rgba(140,150,165,.28)}.yj-lg:hover{color:#e8eaed;border-color:rgba(160,175,195,.6)}.yj-lg.on{color:#0e1116;background:#cfd6de;border-color:#cfd6de}.yj-find{max-width:760px;margin:34px auto 8px;padding:0 20px}.yj-find h2{font:600 20px/1.3 system-ui,sans-serif;margin:0 0 10px}#yjq{width:100%;box-sizing:border-box;padding:13px 15px;font:400 15.5px system-ui,sans-serif;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:rgba(255,255,255,.04);color:inherit}#yjq:focus{outline:none;border-color:#7FD1C4}#yjr{margin-top:10px;display:flex;flex-direction:column;gap:6px}#yjr a{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid rgba(140,150,165,.22);border-radius:6px;text-decoration:none;font:400 14.5px/1.4 system-ui,sans-serif;color:inherit}#yjr a:hover{border-color:#7FD1C4}#yjr .pr{font:600 13px system-ui,sans-serif;color:#5fbf9a;white-space:nowrap}</style><script>(function(){var q=document.getElementById("yjq"),r=document.getElementById("yjr"),D=null;function load(){if(D)return Promise.resolve(D);return fetch("/search-index.json").then(function(x){return x.json();}).then(function(j){D=j;return j;}).catch(function(){D=[];return D;});}function esc(t){return String(t).replace(/[&<>"]/g,function(c){return {"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[c];});}function run(){var v=q.value.trim().toLowerCase();if(v.length<2){r.innerHTML="";return;}load().then(function(j){var w=v.split(/\s+/),o=[];for(var i=0;i<j.length&&o.length<12;i++){var t=j[i].t.toLowerCase();var ok=true;for(var k=0;k<w.length;k++){if(t.indexOf(w[k])<0){ok=false;break;}}if(ok)o.push(j[i]);}r.innerHTML=o.length?o.map(function(x){return "<a href=\""+esc(x.u)+"\">"+"<span>"+esc(x.t)+"</span>"+(x.p?"<span class=\"pr\">$"+x.p+"</span>":"")+"</a>";}).join(""):"";});}q.addEventListener("input",run);q.addEventListener("focus",load);})();</script></div><section class="yj-email-gate" style="max-width:46rem;margin:2.5rem auto;padding:1.25rem;border:1px solid rgba(140,150,165,.28);border-radius:10px;font:400 15px/1.5 system-ui,sans-serif"><b style="font-size:1.05rem">Want the full version?</b><div style="opacity:.75;margin:.35rem 0 .8rem">Enter your email and we send the download link.</div><div style="display:flex;gap:8px;flex-wrap:wrap"><input id="yjge" type="email" placeholder="you@example.com" style="flex:1;min-width:210px;padding:11px 13px;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:rgba(255,255,255,.04);color:inherit"><button id="yjgb" style="padding:11px 18px;border-radius:8px;border:0;cursor:pointer;font:600 15px system-ui,sans-serif">Send it to me</button></div><div id="yjgo" hidden style="margin-top:.6rem;color:#5fbf9a">Sent. Check your inbox.</div><script>(function(){var b=document.getElementById("yjgb"),e=document.getElementById("yjge");if(!b||!e)return;b.addEventListener("click",function(){var v=e.value.trim();if(!/.+@.+\..+/.test(v))return;try{localStorage.setItem("yj_em","1");}catch(_){}fetch(location.origin+"/api/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:v,slug:"payroll-wordpress-plugin",lang:"en",source:"hub_gate"})}).catch(function(){}).then(function(){document.getElementById("yjgo").hidden=false;});});})();</script></section>


<script data-yj="yj-view-beacon">(function(){try{var p=location.pathname;var k='yjv:'+p;if(sessionStorage.getItem(k))return;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en",ref:(document.referrer||''),src:(function(){try{return (new URLSearchParams(location.search).get('ref')||'').replace(/[^a-z_]/g,'').slice(0,12)}catch(e){return ''}})()})}).catch(function(){});}catch(e){}})();</script>

<script data-yj="yj-use-beacon v2">(function(){try{var r=document.querySelector('main')||document.body;var p=location.pathname,k='yju:'+p,sent=false,armed=false;function ours(el){return !!(el&&el.closest&&el.closest('[data-yj],[data-yj-cta],.yj-email-gate,.yj-find,.yj-related,#yj-ask,#yjgo,#yjr'));}function fire(){if(sent||!armed||sessionStorage.getItem(k))return;sent=true;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en",t:'use',src:(function(){try{return (new URLSearchParams(location.search).get('ref')||'').replace(/[^a-z_]/g,'').slice(0,12)}catch(e){return ''}})()})}).catch(function(){});}r.addEventListener('click',function(e){var b=e.target&&e.target.closest?e.target.closest('button,input[type=submit],[role=button]'):null;if(!b||ours(b))return;armed=true;setTimeout(fire,400);},true);r.addEventListener('input',function(e){if(!ours(e.target))armed=true;},true);var mo=new MutationObserver(function(){if(armed){fire();if(sent)mo.disconnect();}});mo.observe(r,{childList:true,characterData:true,subtree:true});}catch(e){}})();</script>

<script src="/assets/pro.js" defer></script>
</body></html>