❌

Reading view

I feel like fewer people might start using WordPress in the future…

With AI evolving so quickly, I think we’ll see more and more websites being built directly with code rather than using platforms like WordPress.
Maybe WordPress will eventually become less common, and honestly, it makes me a little sad to think about. I’ve spent a lot of time working with WordPress, so it would be a little bittersweet to see it slowly disappear. 😢

submitted by /u/InevitableClassic938
[link] [comments]
  •  

Your Website may be used by hackers to link casino website without you knowing. Check yours now!

This is real world example how we caught this exploit on our clients website!

The exploit:

It's called wp2shell (CVE-2026-63030 and CVE-2026-60137). It affects WordPress 6.9.0 to 6.9.4 and 7.0.0 to 7.0.1. The fix was released on July 17 (7.0.2, 6.9.5 and 6.8.6). A public proof of concept exists, so bots scan the internet for unpatched sites automatically. Nobody targets you personally. Client website missed the update for about a month and got hacked on August 22. While checking our own servers we could see that other websites got the same attack in September, but they were already updated and it failed.

What they did?

- Created hidden admin accounts. They don't show up under Users in wp-admin.

- Installed a backdoor that puts itself back if you delete it. It lives in several places at once: `wp-content/db.php`, a file in `mu-plugins`, code at the end of `wp-config.php` and in theme files, hidden files in `wp-content/upgrade` and `wp-content/uploads`, and copies in the database. Clients host's malware scanner kept deleting files for weeks and they kept coming back.

- Got full remote control of the site.

- Turned off page caching for the whole site. That made the site slow: Search Console flagged slow mobile loading.(could be a sign)

Who they linked and why

Only when Googlebot opened the homepage, the site showed 89 links to UK websites (.co.uk and .org.uk) promoting "non GamStop" casinos. GamStop is the UK program people use to block themselves from gambling, so these casinos target people who are trying to stop. Regular visitors saw a normal page. The linked UK sites look like old small business and charity sites that were taken over too. The point is to borrow Google trust from real websites and pass it to casino pages. We found no redirects and no stolen passwords or form data.

What it means for the site owner

- Google sees your site linking to casino spam. That can bring a manual action or a security warning in Search Console.

- The site is slow because caching is off.

- The attacker could read everything on the hosting account, so treat database passwords and other secrets on that account as leaked.

How to check your site

  1. Check your WordPress version under Dashboard > Updates. If it's below 7.0.2 (or 6.9.5 / 6.8.6 on older branches), update now. If it was below that at any point after July 17, do the checks below.
  2. Open the users table in phpMyAdmin, not in wp-admin, and look for admins you don't recognize. They used emails ending in u/wordpress.org and names like backup_manager and cache_sync.
  3. In File Manager, look for `wp-content/db.php`, unknown files in `wp-content/mu-plugins`, files starting with a dot in `wp-content/upgrade` and `wp-content/uploads`, and anything after the `require_once ABSPATH . 'wp-settings.php';` line in `wp-config.php`.
  4. Load your homepage as Googlebot: `curl -A "Googlebot/2.1" https://yoursite.com/ | grep -i gamstop`. If anything comes back, you're infected.
  5. If you use LiteSpeed Cache, check "Do Not Cache URIs". A single `/` there turns off caching for every page.
  6. Check Security issues and Manual actions in Search Console.

If you find it

Make a backup first. Then remove every part in one go: files, database entries and hidden users. If you miss one, it brings the rest back. Reinstall WordPress core, your theme and plugins from clean copies, and change the salts and database passwords. Then request indexing of your homepage in Search Console. You are welcome stay stafe!

submitted by /u/Proper-Neighborhood6
[link] [comments]
  •  

[PROMO] Can you figure out how this Gutenberg plugin works without a tutorial?

I’m developing Block Class Manager (BCM), a free plugin for Gutenberg, and I’d like to test something very specific: is the workflow understandable on its own?

BCM is built around a simple class-based workflow for Gutenberg. Instead of adding a large collection of blocks, it provides a lightweight foundation block with a few essential variations (Text, Media, Heading and Button) all using the same styling interface.

You can work with responsive styles, reusable Global CSS Classes, and HTML attributes within the same workflow, making it easier to build and maintain consistent layouts across screen sizes.

The other main part is Global CSS Classes: instead of recreating the same styling for every block, you can define a class once and reuse it across your layouts. You can also combine Global Classes with local block styles when you need something specific to a single element.

The goal is to have a more reusable and consistent way of styling Gutenberg layouts, while keeping the workflow lightweight and close to the native block editor.

BCM workflow inside the Gutenberg editor.

I know there are already plugins that provide some of these features. I’m not trying to reinvent everything. I’m exploring a particular workflow where you can create and apply reusable Global Classes directly while working with a block, rather than having to manage styles separately. I’d like to see how intuitive this feels to Gutenberg users.

If you use Gutenberg, I’d really appreciate it if you could install it and try it without reading the documentation or watching a tutorial first.

Try to:

  • Create a simple layout with the BCM blocks
  • Change the layout responsively
  • Create and use a Global Class
  • Figure out the difference between local styles and Global Classes

Then tell me:

  • What did you understand immediately?
  • Where did you get stuck?
  • Was anything confusing?
  • Did anything work differently from what you expected?

I’m not looking for compliments. I’m trying to find the parts of the workflow that aren’t obvious enough.

Even if you find the workflow confusing or something doesn’t make sense, that’s useful feedback for me.

I’d love to hear what you think in the comments, especially if something feels confusing or unintuitive.

👉 Block Class Manager on WordPress.org

Thanks to anyone who takes the time to give it a try!

submitted by /u/CNS_77
[link] [comments]
  •  

[PROMO] I got tired of recurring events being a paid feature, so I released a calendar plugin where they aren't

Every events plugin I tried puts the same three things behind a paywall: recurring events, shortcodes, and a grid view. The big one is $99/yr for recurring alone, and it went up 33% in February.

For a church, a library, a running club — the calendar is the recurring events. "Every second Tuesday" is the whole use case. Paying $99/yr for that felt backwards, so I put out a free one where it isn't paid:

  • Recurring events: daily/weekly/monthly/yearly, "second Tuesday", "last Friday", end after N times or on a date, skip dates
  • Google Calendar / ICS import on an hourly schedule, with a visible log of what changed each sync — no silent drift
  • Month and list views as blocks and shortcodes, styled by your theme, not by me
  • Venues with an address and a map link (a link, not an embedded map slowing your page down)
  • ~30 KB, styles load only on pages that show events, no add-on store, no upsell banners anywhere in wp-admin
  • "Delete everything on uninstall" is an option you turn on, off by default

Everything above is free and stays free — I'm not going to paywall the calendar.

It's new, so it's unproven. If you try it and something's broken, tell me here or in the support forum and I'll fix it that day. GPL, on the repo: https://wordpress.org/plugins/beacon-events/


submitted by /u/thejester1324
[link] [comments]
  •  

How I handle AI transparency disclosures across client WordPress sites (and the EU AI Act deadline)

I've been freelancing as a WordPress developer for a few years now, and over the past 6 months, one issue has come up in almost every client conversation: AI disclosure.

Clients are using AI tools for drafting, images, product descriptions — but almost none of them have any system for tracking what was AI-generated, how much AI was involved, or how to prove it if asked.

I tried a few approaches:

· Spreadsheets and manual notes (fell apart immediately at scale)

· Client-side disclaimers buried in footers (not compliant, easy to miss)

· Custom post meta fields (no audit trail, no visitor-facing transparency)

None of it worked. So I ended up building a lightweight toolkit for myself called MegaGovern.

Here's the workflow I landed on:

  1. Declare — Every post gets classified as one of four states: Human, AI-Assisted, AI-Generated, or Synthetic Media. You can do this per-post or bulk-update legacy archives.

  2. Disclose — A visitor-facing badge shows the disclosure status directly on the front end. No hiding it in a footer.

  3. Verify — For images, it scans EXIF metadata and C2PA standards so you know what's actually in the file.

  4. Preserve Evidence — It generates cryptographic PDF logs and ai.txt protocols that you can hand to a client or regulator. Tamper-evident audit records.

The whole thing runs local-first — all data stays in your WordPress database. No external API calls, no cloud service scanning your content.

Why I'm sharing this:

The EU AI Act transparency requirements (Article 50) are already in effect, and a lot of WordPress agencies and freelancers I talk to are completely unprepared. I built this for my own client work, but I've since released it as a plugin.

Full disclosure: I'm the developer behind MegaGovern. There's a free tier that covers manual classification, branded badges, ai.txt generation, and 30-day audit logs — genuinely free, no feature locks. Paid tiers add AI scanning, C2PA checks, and signed PDF reports.

If you're dealing with AI disclosure for clients, I'm happy to answer questions about the compliance side, the WordPress implementation, or anything else. What approach are you all taking right now?

submitted by /u/Interesting_Yam_8807
[link] [comments]
  •  

Using Local for staging WP sites locally

Local has really been a great tool for my work flow, but I have one question.

I keep my staging sites on external drives and I work from a couple of different laptops. On the external drive I have a folder 'local sites' and within that folder I have different staging sites. I am using updraft to backup and restore between online production and offline staging sites. The question is; how can I move that external drive between various laptops and desktops without having to create unique copies of the sites?

submitted by /u/Known_Hippo4702
[link] [comments]
  •  

A WordPress form can say 'sent' while the inquiry never arrives

Hypothetical: a service business changes the email address for its WordPress contact form. The form still says 'sent', but new inquiries stop reaching the team.

Send one test from a phone with a unique phrase in the message. Look for that phrase in the form plugin's saved entries, then the inbox and spam folder, then the CRM. The first missing handoff tells you where to investigate. A success screen alone doesn't prove anyone received the lead.

Which step has failed for you: the form, email delivery, or CRM sync?

submitted by /u/Big-Branch-8532
[link] [comments]
  •  

Can I update an expired SSL certificate through a WP plugin alone?

Hello all! I'm the owner of a small business WordPress site that was set up by a local third party who also manages my web hosting. (I do not have access to the hosting panel or FTP files). This person has become unresponsive and I have an SSL certificate that has been expired for two months. Is there a quick fix via WordPress to renew the expired SSL certificate while I figure out how to reclaim my website from the unresponsive developer? The WP Encryption plugin seems very highly reviewed but I'm not sure if it will work in my case. I'm open to any ideas. Thanks in advance!

UPDATE: It's a miracle...I finally got a hold of the developer/reseller and got the SSL cert issue resolved. He is phasing out his freelance work and says he'll help me get migrated over to new hosting at the end of the year. Thank you to everyone who responded!

submitted by /u/aliengoddess2010
[link] [comments]
  •  

How do you set out a limitation of liability clause in a scope of work agreement?

Hi, I'll get right into it. I typically make static and simple wordpress websites (between £400 and 800 ish). I've been doing this for a while now, and am very happy with it, but I recently closed a really promising deal. It's a 3k multivendor site. I'll be building it with dokan + elementor pro

I need help communicating the limitation of liability. I'll explain that I am building a wordpress website, following all the best security practices (wordfence premium, reputable host, regular backups, 2fa for admin, regular updates and testing, reputable plugins only, etc), but that ultimately there are still things out of my control. A million things could go wrong and they could end up costing money, but I can't help if an unexpected plugin break causes the website to go down or causes a hacker to intercept payment details, etc etc etc. Should I recommend them to get some kind of insurance to cover this? How exactly is this handled in formal contracts?

For example I could very well see that someone could somehow hack into somebody account who has a large sum sitting in their wallet, they could then issue a payout to different bank details and steal some money, or a million other ways this could go wrong. Am I overthinking this, or is it a genuine thing I need to bear in mind and protect myself from

Would really apprciate some advice as I've never done a project of this scale, or with the potential to go as wrong, as this one could. What if

submitted by /u/you_willneverfindme
[link] [comments]
  •  
❌