From 65cd35bc08d8704de685d566b57ff377bfbfa393 Mon Sep 17 00:00:00 2001 From: selul Date: Tue, 21 Jul 2026 11:20:25 +0300 Subject: [PATCH 1/5] chore: remove WordPress Plugin Check workflow [skip ci] Co-Authored-By: Claude Fable 5 --- .github/workflows/plugin-check.yml | 210 ----------------------------- 1 file changed, 210 deletions(-) delete mode 100644 .github/workflows/plugin-check.yml diff --git a/.github/workflows/plugin-check.yml b/.github/workflows/plugin-check.yml deleted file mode 100644 index 83a326f..0000000 --- a/.github/workflows/plugin-check.yml +++ /dev/null @@ -1,210 +0,0 @@ -name: WordPress Plugin Check - -on: - pull_request: - types: [opened, synchronize, reopened] - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: true - -jobs: - plugin-check: - name: WordPress.org Guidelines Check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Composer dependencies - run: composer install --no-dev --optimize-autoloader - - - uses: wordpress/plugin-check-action@v1 - id: plugin-check - with: - categories: plugin_repo,security,performance,general - exclude-directories: | - tests - bin - .github - ignore-codes: | - WordPress.WP.I18n.TextDomainMismatch - textdomain_mismatch - hidden_files - WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound - WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound - WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound - WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound - WordPress.PHP.DevelopmentFunctions.error_log_trigger_error - WordPress.WP.EnqueuedResourceParameters.MissingVersion - include-experimental: true - repo-token: '' - - - name: Plugin Check Summary - if: always() - env: - RESULTS_FILE: ${{ runner.temp }}/plugin-check-results.txt - run: | - echo "## WordPress Plugin Check Results" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - - if [ ! -s "$RESULTS_FILE" ]; then - echo "No results file found or file is empty." >> $GITHUB_STEP_SUMMARY - echo "Check the action logs for details." >> $GITHUB_STEP_SUMMARY - exit 0 - fi - - PARSED=$(RESULTS_FILE="$RESULTS_FILE" python3 << 'PYEOF' - import json, os, re - - results_path = os.environ["RESULTS_FILE"] - - high_risk_codes = [ - "plugin_updater", "code_obfuscation", "no_unfiltered_uploads", - "trademarked_term", "trademarks" - ] - high_risk_messages = [ - r"Plugin Updater detected", r"Missing.*License.*Plugin Header", - r"restricted term", r"Unescaped parameter.*\$wpdb", - r"Use placeholders and.*\$wpdb->prepare" - ] - medium_risk_codes = [ - "missing_direct_file_access_protection", "trunk_stable_tag", - "mismatched_plugin_name", "application_detected" - ] - medium_risk_messages = [ - r"Missing.*\$domain.*parameter", r"has been deprecated", - r"wp_get_sites", r"cURL functions is highly discouraged" - ] - - high, medium, other = [], [], [] - - try: - with open(results_path, "r") as f: - content = f.read().strip() - - all_issues = [] - try: - data = json.loads(content) - if isinstance(data, list): - all_issues = data - elif isinstance(data, dict): - for fp, issues in data.items(): - if isinstance(issues, list): - for issue in issues: - issue['_file'] = fp - all_issues.append(issue) - except json.JSONDecodeError: - for line in content.split('\n'): - line = line.strip() - if not line: - continue - try: - parsed = json.loads(line) - if isinstance(parsed, list): - all_issues.extend(parsed) - elif isinstance(parsed, dict): - all_issues.append(parsed) - except json.JSONDecodeError: - continue - - for issue in all_issues: - code = issue.get('code', '') - msg = issue.get('message', '') - itype = issue.get('type', 'ERROR') - line_num = issue.get('line', 0) - file_path = issue.get('_file', '') - - prefix = "❌" if itype == "ERROR" else "⚠️" - location = "" - if file_path: - location = f" ({file_path}" - if line_num and line_num > 0: - location += f", line {line_num}" - location += ")" - elif line_num and line_num > 0: - location = f" (line {line_num})" - - readable = f"{prefix} {msg}{location}" - - is_high = code in high_risk_codes - if not is_high: - for p in high_risk_messages: - if re.search(p, msg, re.IGNORECASE): - is_high = True - break - - is_medium = code in medium_risk_codes - if not is_medium and not is_high: - for p in medium_risk_messages: - if re.search(p, msg, re.IGNORECASE): - is_medium = True - break - - if is_high: - high.append(readable) - elif is_medium: - medium.append(readable) - else: - other.append(readable) - - def dedup(lst): - seen = set() - result = [] - for item in lst: - if item not in seen: - seen.add(item) - result.append(item) - return result - - high, medium, other = dedup(high), dedup(medium), dedup(other) - - print("---HIGH---") - for i in high: print(i) - print("---MEDIUM---") - for i in medium: print(i) - print("---OTHER---") - for i in other: print(i) - print("---COUNTS---") - print(f"{len(high)}|{len(medium)}|{len(other)}") - - except Exception as e: - print(f"Parse error: {e}", file=__import__('sys').stderr) - print("---HIGH---\n---MEDIUM---\n---OTHER---\n---COUNTS---\n0|0|0") - PYEOF - ) - - HIGH_SECTION=$(echo "$PARSED" | sed -n '/^---HIGH---$/,/^---MEDIUM---$/p' | sed '1d;$d') - MEDIUM_SECTION=$(echo "$PARSED" | sed -n '/^---MEDIUM---$/,/^---OTHER---$/p' | sed '1d;$d') - OTHER_SECTION=$(echo "$PARSED" | sed -n '/^---OTHER---$/,/^---COUNTS---$/p' | sed '1d;$d') - COUNTS=$(echo "$PARSED" | tail -1) - OTHER_COUNT=$(echo "$COUNTS" | cut -d'|' -f3) - - echo "### 🚨 HIGH RISK — Can cause plugin closure or suspension" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - if [ -n "$HIGH_SECTION" ]; then - echo "$HIGH_SECTION" >> $GITHUB_STEP_SUMMARY - else - echo "✅ No high-risk issues found." >> $GITHUB_STEP_SUMMARY - fi - echo "" >> $GITHUB_STEP_SUMMARY - - echo "### ⚠️ MEDIUM RISK — Commonly flagged in wordpress.org reviews" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - if [ -n "$MEDIUM_SECTION" ]; then - echo "$MEDIUM_SECTION" >> $GITHUB_STEP_SUMMARY - else - echo "✅ No medium-risk issues found." >> $GITHUB_STEP_SUMMARY - fi - echo "" >> $GITHUB_STEP_SUMMARY - - echo "
" >> $GITHUB_STEP_SUMMARY - echo "📋 Other issues ($OTHER_COUNT) — click to expand" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - if [ -n "$OTHER_SECTION" ]; then - echo "$OTHER_SECTION" >> $GITHUB_STEP_SUMMARY - else - echo "No other issues." >> $GITHUB_STEP_SUMMARY - fi - echo "" >> $GITHUB_STEP_SUMMARY - echo "
" >> $GITHUB_STEP_SUMMARY From 5056b10e203716334d9f42bbb046a15f925eea39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 09:08:08 +0000 Subject: [PATCH 2/5] build(deps): bump codeinwp/themeisle-sdk from 3.3.51 to 3.3.55 Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.51 to 3.3.55. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Changelog](https://github.com/Codeinwp/themeisle-sdk/blob/v3.3.55/CHANGELOG.md) - [Commits](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.51...v3.3.55) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.54 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.lock b/composer.lock index 6a6dcea..522d0ba 100644 --- a/composer.lock +++ b/composer.lock @@ -130,16 +130,16 @@ }, { "name": "codeinwp/themeisle-sdk", - "version": "3.3.51", + "version": "3.3.55", "source": { "type": "git", "url": "https://github.com/Codeinwp/themeisle-sdk.git", - "reference": "bb2a8414b0418b18c68c9ff1df3d7fb10467928d" + "reference": "bd601798d209a4bc5962d2a19a22dc6dddf341cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/bb2a8414b0418b18c68c9ff1df3d7fb10467928d", - "reference": "bb2a8414b0418b18c68c9ff1df3d7fb10467928d", + "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/bd601798d209a4bc5962d2a19a22dc6dddf341cc", + "reference": "bd601798d209a4bc5962d2a19a22dc6dddf341cc", "shasum": "" }, "require-dev": { @@ -158,16 +158,16 @@ "homepage": "https://themeisle.com" } ], - "description": "Themeisle SDK.", + "description": "Themeisle SDK library.", "homepage": "https://github.com/Codeinwp/themeisle-sdk", "keywords": [ "wordpress" ], "support": { "issues": "https://github.com/Codeinwp/themeisle-sdk/issues", - "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.51" + "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.55" }, - "time": "2026-03-30T07:58:49+00:00" + "time": "2026-07-20T10:57:27+00:00" }, { "name": "enshrined/svg-sanitize", From c3e09452ddbb0508c5d00b464738740f7279a668 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 06:03:11 +0000 Subject: [PATCH 3/5] build(deps): bump codeinwp/themeisle-sdk from 3.3.55 to 3.3.58 Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.55 to 3.3.58. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Changelog](https://github.com/Codeinwp/themeisle-sdk/blob/v3.3.58/CHANGELOG.md) - [Commits](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.55...v3.3.58) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.58 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 522d0ba..0510c42 100644 --- a/composer.lock +++ b/composer.lock @@ -130,16 +130,16 @@ }, { "name": "codeinwp/themeisle-sdk", - "version": "3.3.55", + "version": "3.3.58", "source": { "type": "git", "url": "https://github.com/Codeinwp/themeisle-sdk.git", - "reference": "bd601798d209a4bc5962d2a19a22dc6dddf341cc" + "reference": "d6807c0b7308e323bd77cced667dee3f2d5e6a82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/bd601798d209a4bc5962d2a19a22dc6dddf341cc", - "reference": "bd601798d209a4bc5962d2a19a22dc6dddf341cc", + "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/d6807c0b7308e323bd77cced667dee3f2d5e6a82", + "reference": "d6807c0b7308e323bd77cced667dee3f2d5e6a82", "shasum": "" }, "require-dev": { @@ -165,9 +165,9 @@ ], "support": { "issues": "https://github.com/Codeinwp/themeisle-sdk/issues", - "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.55" + "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.58" }, - "time": "2026-07-20T10:57:27+00:00" + "time": "2026-07-29T08:38:52+00:00" }, { "name": "enshrined/svg-sanitize", From 9172aaa56cc9363c1b9c9dd914e85c7b34422664 Mon Sep 17 00:00:00 2001 From: Marius Cristea Date: Tue, 1 Sep 2026 12:42:00 +0300 Subject: [PATCH 4/5] ci: run phpunit on PHP 7.4 (latest WordPress test suite requires >= 7.4) Co-Authored-By: Claude Fable 5 --- .github/workflows/test-php.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-php.yml b/.github/workflows/test-php.yml index f5bb25c..c635754 100755 --- a/.github/workflows/test-php.yml +++ b/.github/workflows/test-php.yml @@ -49,7 +49,7 @@ jobs: - name: Setup PHP version uses: shivammathur/setup-php@v2 with: - php-version: '7.2' + php-version: '7.4' extensions: simplexml, mysql tools: phpunit-polyfills - name: Checkout source code From d9fdad8e02ab8198a48adca4b687fead3ecb2df4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:01:38 +0300 Subject: [PATCH 5/5] build(deps): bump codeinwp/themeisle-sdk from 3.3.58 to 3.3.61 (#345) Bumps [codeinwp/themeisle-sdk](https://github.com/Codeinwp/themeisle-sdk) from 3.3.58 to 3.3.61. - [Release notes](https://github.com/Codeinwp/themeisle-sdk/releases) - [Changelog](https://github.com/Codeinwp/themeisle-sdk/blob/v3.3.61/CHANGELOG.md) - [Commits](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.58...v3.3.61) --- updated-dependencies: - dependency-name: codeinwp/themeisle-sdk dependency-version: 3.3.61 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 0510c42..00b5c3a 100644 --- a/composer.lock +++ b/composer.lock @@ -130,16 +130,16 @@ }, { "name": "codeinwp/themeisle-sdk", - "version": "3.3.58", + "version": "3.3.61", "source": { "type": "git", "url": "https://github.com/Codeinwp/themeisle-sdk.git", - "reference": "d6807c0b7308e323bd77cced667dee3f2d5e6a82" + "reference": "9fe698b52dec768a0dd8b500fb51efe40962ee99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/d6807c0b7308e323bd77cced667dee3f2d5e6a82", - "reference": "d6807c0b7308e323bd77cced667dee3f2d5e6a82", + "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/9fe698b52dec768a0dd8b500fb51efe40962ee99", + "reference": "9fe698b52dec768a0dd8b500fb51efe40962ee99", "shasum": "" }, "require-dev": { @@ -165,9 +165,9 @@ ], "support": { "issues": "https://github.com/Codeinwp/themeisle-sdk/issues", - "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.58" + "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.61" }, - "time": "2026-07-29T08:38:52+00:00" + "time": "2026-08-24T15:59:27+00:00" }, { "name": "enshrined/svg-sanitize",