Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
270d10d
Added .distignore
XjSv Aug 13, 2026
5ad79ad
Plugin Check (PCP) - Fixes
XjSv Aug 14, 2026
53cca72
License Box Style Updates
XjSv Aug 14, 2026
0c2578f
Plugin Check (PCP) - Fixes
XjSv Aug 14, 2026
79624d9
Plugin Check (PCP) - Fixes
XjSv Aug 14, 2026
2ab3627
Tests Overhaul
XjSv Aug 14, 2026
a598752
Updated tests to not be Basil theme specific
XjSv Aug 14, 2026
99140b8
Removed hardcoded recipe id from rating test
XjSv Aug 14, 2026
192acbd
Added Allergens Test
XjSv Aug 14, 2026
d76964f
Added PHPUnit tests for Filters
XjSv Aug 15, 2026
d623267
Plugin Check (PCP) - Fixes
XjSv Aug 16, 2026
f9e7d1c
Plugin Check (PCP) - Fixes
XjSv Aug 16, 2026
db9116f
Harden rewrite flushes after updates so browse/taxonomy URLs recover …
XjSv Aug 16, 2026
4f44531
Rebuild rewrite rules from whatever is registered this request, not o…
XjSv Aug 16, 2026
927118c
Plugin Check (PCP) - Fixes
XjSv Aug 16, 2026
d0d79f0
Added test for Settings
XjSv Aug 16, 2026
7e53a0e
Plugin Check (PCP) - Fixes
XjSv Aug 17, 2026
90ad2c9
Created .npmrc for DDEV Playwright Addon
XjSv Aug 17, 2026
85f83cb
Plugin Check (PCP) - Fixes
XjSv Aug 17, 2026
d2dd340
Updated .env.example for tests
XjSv Aug 18, 2026
0162f33
Fix cooked-timer Bulk Add truncation and smart quotes
XjSv Aug 23, 2026
8de4fdc
Plugin Check (PCP) - Fixes
XjSv Aug 23, 2026
22f9ad0
Plugin Check (PCP) - Fixes
XjSv Aug 24, 2026
088dece
Plugin Check (PCP) - Fixes
XjSv Aug 24, 2026
e1f7eb1
Plugin Check (PCP) - Fixes
XjSv Aug 24, 2026
0cf2e00
Removed scroll to top when clicking recipe edit tabs
XjSv Aug 30, 2026
fb8a9e4
Fixed encoding issue with SEO Description field
XjSv Aug 30, 2026
3c21cbc
Fixed encoding issue with SEO Description field
XjSv Aug 30, 2026
8bd35d9
Added test for SEO Description field
XjSv Aug 30, 2026
bdbb765
Fixed bug with cooked-recipe-tabs on screens under 1440px
XjSv Sep 1, 2026
47331c9
Fixed Fullscreen Mode Z-Index Issue (Directions Tab)
XjSv Sep 4, 2026
f767d71
Fixed Contributor+ IDOR/CSRF on recipe migrate and import AJAX
XjSv Sep 4, 2026
6a9df97
Release v1.16.1 Prep
XjSv Sep 5, 2026
88c4e73
Fix for Dark mode CSS combinators get escaped
XjSv Sep 7, 2026
765b746
BackstopJS Testing Prep Work
XjSv Sep 7, 2026
a004987
Added Missing French Translation Strings
XjSv Sep 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .distignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/.wordpress-org
/.git
/.github
/.cursor
/node_modules
/tests
/bin
/vendor/bin
/vendor/squizlabs
/vendor/phpunit
/vendor/phpstan
/vendor/dealerdirect
/vendor/wp-coding-standards
/vendor/phpcompatibility
/vendor/sirbrillig
/vendor/phpcsstandards

.distignore
.gitignore
.editorconfig
.wp-env.json
.phpcs.xml
phpcs.xml
phpunit.xml
phpstan.neon
package.json
package-lock.json
bun.lock
CODE_OF_CONDUCT.md
CITATION.cff
notes
*.bak
.env
.env.example
File renamed without changes.
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,29 @@
# Dev dependencies
node_modules/
vendor
.env

# Tests
tests/playwright/test-results/
tests/playwright/playwright-report/
tests/playwright/.cache/
tests/test-results/
tests/playwright-report/
tests/blob-report/
tests/playwright/.cache/
playwright-report/
test-results/
tests/.auth/
tests/phpunit/.cache
tests/backstop/backstop_data/bitmaps_test/
tests/backstop/backstop_data/html_report/
tests/backstop/backstop_data/ci_report/
tests/backstop/backstop_data/json_report/

# Build
build/*

# WordPress
wordpress/

# Python
__pycache__/
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
legacy-peer-deps=true
4 changes: 3 additions & 1 deletion .wp-env.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
"core": null,
"phpVersion": "7.4",
"themes": ["WordPress/twentytwentyfive"],
"plugins": [],
"plugins": [
"https://downloads.wordpress.org/plugin/plugin-check.zip"
],
"mappings": {
"wp-content/plugins/cooked": "."
},
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ authors:
given-names: Justin
- family-names: Tresova
given-names: Armand
version: 1.16.0
version: 1.16.1
doi: 10.5281/zenodo.1171250
date-released: 2017-05-08
url: "https://github.com/XjSv/cooked"
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Versions that are currently being supported with security updates.

| Version | Supported |
| ----------- | ------------------ |
| 1.15.0 | :white_check_mark: |
| <= 1.14.0 | :x: |
| 1.16.1 | :white_check_mark: |
| <= 1.16.1 | :x: |

## Reporting a Vulnerability

Expand Down
76 changes: 35 additions & 41 deletions assets/admin/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,21 @@ td.column-featured_image { width:50px; text-align:center; }
body.post-type-cp_recipe #titlediv #title { box-shadow:none; -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; padding:0 12px; font-weight:400; font-size:19px; letter-spacing:0; height:44px; }
body.post-type-cp_recipe #titlediv #title-prompt-text { font-size:15px; color:#888; font-weight:400; letter-spacing:0; padding:12px 15px; }

/* TinyMCE fullscreen above admin menu and Cooked sticky UI */
body.post-type-cp_recipe .mce-fullscreen {
z-index: 100100 !important;
body.mce-fullscreen #cooked-recipe-tabs {
z-index: auto;
}

body.mce-fullscreen #adminmenumain {
display: none;
}

body.mce-fullscreen #cooked_recipe_settings .wp-editor-wrap:not(:has(.mce-fullscreen)),
body.mce-fullscreen #cooked-directions-builder .cooked-direction-block:not(:has(.mce-fullscreen)) {
visibility: hidden;
}

body.mce-fullscreen div.mce-tinymce.mce-fullscreen {
z-index: 100010;
}

#cooked-settings-prewrap { display:flex; justify-content:center; }
Expand All @@ -56,7 +68,18 @@ body.post-type-cp_recipe .mce-fullscreen {
#cooked-settings-wrap.is-stuck .cooked-settings-update-button { position:fixed; top:35px; right:11px; z-index:100001; }


#cooked-recipe-tabs { list-style:none; padding:0; margin:0; position:absolute; top:0; left:0; width:100%; }
#cooked-recipe-tabs {
list-style:none;
padding:0;
margin:0;
position:sticky;
top: var(--wp-admin--admin-bar--height, 0px);
z-index: 1000;
width:100%;
}
#cooked_recipe_settings.stuck #cooked-recipe-tabs {
box-shadow: 0 3px 50px rgba(0,0,0,0.25);
}
#cooked-recipe-tabs li { font-size:0.9rem; line-height:3rem; height:3rem; font-weight:500; display:inline-block; padding:0 1.25rem; margin:0; color:#fff; }
#cooked-recipe-tabs li:hover { cursor:pointer; }
#cooked-recipe-tabs li.active,
Expand All @@ -66,18 +89,7 @@ body.post-type-cp_recipe .mce-fullscreen {
#cooked-recipe-tabs li.cooked-loading:hover { background:none; color:#fff; }
#cooked_recipe_settings.cooked-loading #cooked-recipe-tabs li.cooked-loading { opacity:1; }

#cooked_recipe_settings .inside { padding-top:60px; margin: 0}
#cooked_recipe_settings.stuck #cooked-recipe-tabs {
position: fixed;
width: auto;
top: 32px;
left: 23px;
z-index: 100000;
margin-left: 160px;
box-shadow: 0 3px 50px rgba(0,0,0,0.25);
}

#cooked_recipe_settings.stuck #cooked-recipe-tabs li.cooked-loading { right:160px; }
#cooked_recipe_settings .inside { padding: 0; margin: 0}

.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content { display:none; }
.cooked-recipe-tab-content-wrapper .cooked-recipe-tab-content:first-child { display:block; }
Expand Down Expand Up @@ -159,7 +171,10 @@ body.post-type-cp_recipe .mce-fullscreen {
#cooked_recipe_settings .recipe-setting-block .cooked-html-block h3.cooked-settings-title { width:100%; color:#333; }
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid { background:#fff; border:2px solid #0aa780; box-shadow:none; border-radius:5px; }
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.valid > .cooked-settings-title { color:#0aa780; }
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired { border:2px solid #ca4a20; }
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired,
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.invalid { border:2px solid #ca4a20; }
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.expired > .cooked-settings-title,
#cooked_recipe_settings .recipe-setting-block .cooked-html-block.invalid > .cooked-settings-title { color:#ca4a20; }

/* Heading Element Styles */
#cooked-ingredients-builder .cooked-ingredient-block:hover > .cooked-heading-name,
Expand Down Expand Up @@ -424,7 +439,6 @@ body .button.button-cooked-reset:hover { color:#555; }
overflow-x: auto;
scrollbar-width: none;
-ms-overflow-style: none;
top: 0;
width: 100%;
}
#cooked-recipe-tabs::-webkit-scrollbar {
Expand All @@ -433,13 +447,6 @@ body .button.button-cooked-reset:hover { color:#555; }
#cooked-recipe-tabs li {
float: none;
}
#cooked_recipe_settings.stuck #cooked-recipe-tabs {
position: fixed;
top: 32px;
left: 0;
width: 100%;
margin-left: 0;
}
}

/* Recipe Gallery */
Expand Down Expand Up @@ -753,19 +760,7 @@ body .button.button-cooked-reset:hover { color:#555; }
#cooked-recipe-tabs li .cooked-icon { display:none; }
}

@media screen and ( max-width: 960px ) {
#cooked_recipe_settings.stuck #cooked-recipe-tabs { margin-left:36px; }
}

@media screen and ( max-width: 768px ) {
#cooked_recipe_settings.stuck #cooked-recipe-tabs {
position: absolute;
top: 0;
left: 0;
width: 100%;
margin-left: 0;
box-shadow: 0 3px 50px rgba(0,0,0,0.25);
}
#cooked_recipe_settings .cooked-clearfix:has(> .cooked-setting-column-14) {
display: grid;
grid-template-columns: 1fr 1fr;
Expand All @@ -784,6 +779,9 @@ body .button.button-cooked-reset:hover { color:#555; }
}

@media screen and ( max-width: 600px ) {
#cooked-recipe-tabs {
top: 0;
}
#cooked_recipe_settings .recipe-setting-block h3.cooked-settings-title {
display: flex;
flex-wrap: wrap;
Expand Down Expand Up @@ -909,10 +907,6 @@ body .button.button-cooked-reset:hover { color:#555; }
#cooked_recipe_settings .cooked-clearfix:has(> .cooked-setting-column-14) {
grid-template-columns: 1fr;
}

#cooked_recipe_settings.stuck #cooked-recipe-tabs {
width: 100%;
}
}

/* Substitution Fields */
Expand Down
2 changes: 1 addition & 1 deletion assets/admin/css/style.min.css

Large diffs are not rendered by default.

9 changes: 4 additions & 5 deletions assets/admin/js/cooked-functions.js
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,6 @@ var cookedSortableTouchHandler = function(event) {
$_CookedRecipeTab.on('click', function(e) {
e.preventDefault();
$_CookedRecipeTab.removeClass('active');
window.scrollTo(0, 0);

var thisTab = $(this),
thisTabID = thisTab.attr('id').split('cooked-recipe-tab-')[1];
Expand Down Expand Up @@ -1304,7 +1303,7 @@ function cooked_init_bulk_add($) {
for (var i = 0; i < lines.length; i++) {
var $row = $('<div class="cooked-bulk-add-preview-row"></div>');
var $cb = $('<label class="cooked-bulk-add-heading-toggle"><input type="checkbox" data-index="' + i + '" /><span>' + jsVars.i18n_bulk_add_section_heading + '</span></label>');
var $text = $('<input type="text" class="cooked-bulk-add-preview-text" data-index="' + i + '" value="' + escHtml(lines[i]) + '" />');
var $text = $('<input type="text" class="cooked-bulk-add-preview-text" data-index="' + i + '" />').val(lines[i]);
$row.append($cb).append($text);
$previewList.append($row);
}
Expand Down Expand Up @@ -1342,9 +1341,9 @@ function cooked_init_bulk_add($) {
var $headingLbl = $('<span class="cooked-bulk-add-heading-line-label"></span>').text(jsVars.i18n_bulk_add_heading_line_label);
var $lineInput = $('<input type="text" class="cooked-bulk-add-preview-text" data-index="' + i + '" />').val(lines[i]);
$headingWrap.append($headingLbl).append($lineInput);
var $amt = $('<input type="text" class="cooked-bulk-add-parsed-amount" data-index="' + i + '" value="' + escHtml(p.amount) + '" />');
var $unit = $('<input type="text" class="cooked-bulk-add-parsed-unit" data-index="' + i + '" value="' + escHtml(p.measurement) + '" />');
var $name = $('<input type="text" class="cooked-bulk-add-parsed-name" data-index="' + i + '" value="' + escHtml(p.name) + '" />');
var $amt = $('<input type="text" class="cooked-bulk-add-parsed-amount" data-index="' + i + '" />').val(p.amount);
var $unit = $('<input type="text" class="cooked-bulk-add-parsed-unit" data-index="' + i + '" />').val(p.measurement);
var $name = $('<input type="text" class="cooked-bulk-add-parsed-name" data-index="' + i + '" />').val(p.name);
$row.append($cb).append($headingWrap).append($amt).append($unit).append($name);
$previewList.append($row);
}
Expand Down
2 changes: 1 addition & 1 deletion assets/admin/js/cooked-functions.min.js

Large diffs are not rendered by default.

16 changes: 11 additions & 5 deletions assets/admin/js/cooked-migration.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
var ajax__bulk_migrate_recipes = $.post(
cooked_migration_js_vars.ajax_url,
{
action: 'cooked_get_migrate_ids'
action: 'cooked_get_migrate_ids',
nonce: cooked_migration_js_vars.cooked_migrate_nonce
},
function (json_recipe_ids) {
if (json_recipe_ids) {
Expand Down Expand Up @@ -60,7 +61,8 @@
cooked_migration_js_vars.ajax_url,
{
action: 'cooked_get_import_ids',
import_type: import_type
import_type: import_type,
nonce: cooked_migration_js_vars.cooked_import_recipes_nonce
},
function (json_recipe_ids) {
if (json_recipe_ids) {
Expand Down Expand Up @@ -117,6 +119,7 @@

var formData = new FormData();
formData.append('action', 'cooked_upload_csv');
formData.append('nonce', cooked_migration_js_vars.cooked_import_nonce);
formData.append('csv_file', file);

// Show progress
Expand Down Expand Up @@ -144,7 +147,8 @@
cooked_migration_js_vars.ajax_url,
{
action: 'cooked_process_csv',
transient_key: response.data.transient_key
transient_key: response.data.transient_key,
nonce: cooked_migration_js_vars.cooked_import_nonce
},
function(processResponse) {
if (processResponse.success) {
Expand Down Expand Up @@ -267,7 +271,8 @@ function cooked_migrate_recipes(recipe_ids, total_recipes ) {
cooked_migration_js_vars.ajax_url,
{
action: 'cooked_migrate_recipes',
recipe_ids: recipe_ids
recipe_ids: recipe_ids,
nonce: cooked_migration_js_vars.cooked_migrate_nonce
},
function( new_recipe_ids ) {
if ( new_recipe_ids && new_recipe_ids != 'false' && new_recipe_ids != false ){
Expand Down Expand Up @@ -348,7 +353,8 @@ function cooked_import_recipes(recipe_ids, total_recipes, import_type) {
{
action: 'cooked_import_recipes',
recipe_ids: recipe_ids,
import_type: import_type
import_type: import_type,
nonce: cooked_migration_js_vars.cooked_import_recipes_nonce
},
function (new_recipe_ids) {
if (new_recipe_ids && new_recipe_ids != 'false' && new_recipe_ids != false) {
Expand Down
Loading