=== Code Snippets ===
Contributors: bungeshea, ver3
Donate link: https://codesnippets.pro
Tags: snippets, functions, multisite, code, php, html, css, javascript
License: MIT
License URI: license.txt
Stable tag: 3.2.2
Tested up to: 6.1.1

An easy, clean and simple way to run code snippets on your site.

== Description ==

Code Snippets is an easy, clean and simple way to run code snippets on your site. It removes the need to add custom snippets to your theme's `functions.php` file.

[**Black Friday is here! Get 40% off all Code Snippets Pro plans.**](https://codesnippets.pro/pricing/)

Code Snippets Pro comes with full-featured CSS and JavaScript snippets and integration with Gutenberg and Elementor.

**What is Code Snippets?**

A snippet is a small chunk of PHP code that you can use to extend the functionality of a WordPress-powered website; essentially a mini-plugin with less load on your site.

Most snippet-hosting sites tell you to add snippet code to your active theme's `functions.php` file, which can get rather long and messy after a while.

Code Snippets changes that by providing a GUI interface for adding snippets and **actually running them on your site** just as if they were in your theme's `functions.php` file.

**Quick overview of Code Snippets by Imran Siddiq**

https://youtu.be/EMjIWjcYONk

Code Snippets provides graphical interface, similar to the Plugins menu, for managing snippets. Snippets can be activated and deactivated, just like plugins.

The snippet editor includes fields for a name, a visual editor-enabled description, tags to allow you to categorize snippets, and a full-featured code editor. Snippets can be exported for transfer to another site, either in JSON for later importing by the Code Snippets plugin, or in PHP for creating your own plugin or theme.

**Comprehensive Code Snippets tutorial with practical examples by Ferdy Korpershoek**

https://youtu.be/29jD2BcBX5w

If you have any feedback, issues, or suggestions for improvements please leave a topic in the [Support Forum](https://wordpress.org/support/plugin/code-snippets), [join the community on Facebook](https://facebook.com/groups/codesnippetsplugin), or [check us out on GitHub](https://github.com/sheabunge/code-snippets).

If you like this plugin, or it is useful to you in some way, please consider reviewing it on [WordPress.org](https://wordpress.org/support/view/plugin-reviews/code-snippets).

== Translations ==

Code Snippets can be used in these different languages thanks to the following translators:

* Belarusian – [Hrank.com](https://www.hrank.com)
* Brazilian Portuguese – [Bruno Borges](http://brunoborges.info)
* Chinese – [Jincheng Shan](http://shanjincheng.com) and [诗语](https://profiles.wordpress.org/f2010525/)
* Chinese (Taiwan) – [Alex Lion](https://www.alexclassroom.com/) and [Chun-Chih Cheng](https://profiles.wordpress.org/alex1114/)
* Croatian – [Borisa Djuraskovic from Web Hosting Hub](https://www.webhostinghub.com/)
* Czech  – [Lukáš Tesař](mailto:lukastesar03@gmail.com) and [Jakub Humpolec](https://profiles.wordpress.org/jumphy/)
* Danish – [Finn Sommer Jensen](https://profiles.wordpress.org/finnsommer/)
* Dutch – [Sander Spies](https://github.com/sander1), [Peter Smits](https://psmits.com) and [mother.of.code.a11n](https://profiles.wordpress.org/imazed/)
* English (New Zealand) and English (UK) – [webaware](https://profiles.wordpress.org/webaware/)
* English (South Africa) – [webaware](https://profiles.wordpress.org/webaware/) and [Ian Barnes](https://profiles.wordpress.org/ianbarnes/)
* French – [momo-fr](https://www.momofr.net/), [Didier Demory](https://www.wptrads.com/), [Cyrille Sanson](https://100son.net/) and [Shea Bunge](https://sheabunge.com)
* French (Canada) – [Dominic Desbiens](https://www.dominicdesbiens.com/)
* German – [Mario Siegmann](https://web-alltag.de/), [Joerg Knoerchen](https://www.sensorgrafie.de/), [David Decker](https://deckerweb.de) and [Andreas](https://profiles.wordpress.org/perryzelda/)
* Greek – [Konstantinos Megas](https://profiles.wordpress.org/nextdoorpanda/) and [Toni Bishop from Jrop](https://www.jrop.com/)
* Indonesian – [Jordan Silaen from ChameleonJohn.com](https://www.chameleonjohn.com/)
* Italian – [Usman Wagan](https://coupontoaster.com/), [Luisa Ravelli](https://profiles.wordpress.org/darkavenger/) and [ElectricFeet](https://profiles.wordpress.org/electricfeet/)
* Japanese – [mt8](https://mt8.biz/), [Takakazu Nagaya](https://profiles.wordpress.org/tanagaya/), [Naoko Takano](https://naoko.blog/) and [melvas](https://profiles.wordpress.org/melvas/)
* Persian – [Mohammad Novintanon](http://mnovintan.ir/)
* Russian – [Alexander Samsonov](http://www.wordpressplugins.ru/administration/code-snippets.html), [Yui](https://profiles.wordpress.org/fierevere/), [Denis Yanchevskiy](https://denisco.pro/) and [krioteh](https://profiles.wordpress.org/krioteh/)
* Slovak – [Ján Fajčák](https://wp.sk)
* Spanish (Colombia) and Spanish (Ecuador) – [Javier Esteban](https://javieresteban.org/)
* Spanish (Spain) – [Ibidem Group](https://www.ibidemgroup.com), [Javier Esteban](https://javieresteban.org/), [Fernando Tellado](https://ayudawp.com/) and [Juanma Aranda](https://juanmaaranda.com/)
* Spanish (Venezuela) – [Yordan Soares](https://yordansoar.es/)
* Swedish – [Argentum](https://profiles.wordpress.org/argentum/), [Fredrik](https://profiles.wordpress.org/elbogen/) and [Tor-Bjorn Fjellner](https://profiles.wordpress.org/tobifjellner/)
* Urdu – [Samuel Badree](https://mobilemall.pk/)
* Vietnamese – [Tuan Phan](https://profiles.wordpress.org/khunglong/)

== Installation ==

= Automatic installation =

1. Log into your WordPress admin
2. Click __Plugins__
3. Click __Add New__
4. Search for __Code Snippets__
5. Click __Install Now__ under "Code Snippets"
6. Activate the plugin

= Manual installation =

1. Download the plugin
2. Extract the contents of the zip file
3. Upload the contents of the zip file to the `wp-content/plugins/` folder of your WordPress installation
4. Activate the Code Snippets plugin from 'Plugins' page.

Network Activating Code Snippets through the Network Dashboard will enable a special interface for running snippets across the entire network.

== Frequently Asked Questions ==

A full list of our Frequently Asked Questions can be found at [help.codesnippets.pro](https://help.codesnippets.pro/collection/3-faq).

= How can I recover my site if it is crashed by a buggy snippet? =
You can recover your site by enabling the Code Snippets safe mode feature. Instructions for how to turn it on are available here: <https://help.codesnippets.pro/article/12-safe-mode>.

= Will I lose my snippets if I change the theme or upgrade WordPress? =
No, the snippets are stored in the WordPress database, independent of the theme and unaffected by WordPress upgrades.

= Can the plugin be completely uninstalled? =
If you enable the 'Complete Uninstall' option on the plugin settings page, Code Snippets will clean up all of its data when deleted through the WordPress 'Plugins' menu. This includes all stored snippets. If you would like to preserve the snippets, ensure they are exported first.

= Can I copy snippets that I have created to another WordPress site? =
Yes! You can individually export a single snippet using the link below the snippet name on the 'Manage Snippets' page or bulk export multiple snippets using the 'Bulk Actions' feature. Snippets can later be imported using the 'Import Snippets' page by uploading the export file.

= Can I export my snippets to PHP for a site where I'm not using the Code Snippets plugin? =
Yes. Click the checkboxes next to the snippets you want to export, and then choose **Export to PHP** from the Bulk Actions menu and click Apply. The generated PHP file will contain the exported snippets' code, as well as their name and description in comments.

= Can I run network-wide snippets on a multisite installation? =
You can run snippets across an entire multisite network by **Network Activating** Code Snippets through the Network Dashboard. You can also activate Code Snippets just on the main site, and then individually on other sites of your choice.

= Where are the snippets stored in my WordPress database? =
Snippets are stored in the `wp_snippets` table in the WordPress database. The table name may differ depending on what your table prefix is set to.

= Where can I go for help or suggest new features? =
You can get help with Code Snippets, report bugs or errors, and suggest new features and improvements either on the [WordPress Support Forums](https://wordpress.org/support/plugin/code-snippets) or on [GitHub](https://github.com/sheabunge/code-snippets)

= How can I help contribute to the development of the Code Snippets plugin? =
The best way to do this is to fork the [repository on GitHub](https://github.com/sheabunge/code-snippets) and send a pull request.

== Screenshots ==

1. Managing existing snippets
2. Adding a new snippet
3. Editing a snippet
4. Importing snippets from an export file

== Changelog ==

= 3.2.2 (17 Nov 2022) =
* Fixed: Plugin lacking a valid header error on activation.

= 3.2.1 (05 Oct 2022) =
* Fixed: Issue making survey reminder notice not dismissible.
* Added: `Ctrl`+`/` or `Cmd`+`/` as shortcut for commenting out code in the snippet editor.
* Added: Additional hooks to various snippet actions, thanks to contributions made by [ancient-spirit](https://github.com/ancient-spirit).
* Added: Fold markers, additional keyboard shortcuts and keymap options to snippet editor,
thanks to contributions made by [Amaral Krichman](https://github.com/karmaral).
* Improved: Removed duplicate tables exist query. ([#](https://wordpress.org/support/topic/duplicate-queries-21)).
* Improved: Enabled 'add paragraphs and formatting' option by default for newly inserted content snippets.
* Added: WP-CLI commands for retrieving, activating, deactivating, deleting, creating, updating, exporting and importing snippets.
* Fixed: Path to iron visible when updating the pro plugin.

= 3.2.0 (22 July 2022) =
* Fixed: Remove default value from SQL columns to improve compatibility with certain versions of MySQL.
* Fixed: Delay loading snippets in Gutenberg editor blocks. (PRO)
* Added: Option to show and hide line numbers in Gutenberg source code editor block. (PRO)
* Added: Support for highlighting HTML, CSS, JS and embedded code in the front-end PrismJS code highlighter.
* Added: Additional features to front-end PrismJS code highlighter, including automatic links and a copy button.
* Added: Support for multiple code styles in the source code Gutenberg editor block. (PRO)
* Added: Admin notice announcing release of Code Snippets Pro.
* Fixed: Inconsistencies with translations between different plugin versions.
* Fixed: Issue with Content Snippet shortcode information not displaying.
* Added: Button for copying shortcode text to clipboard.
* Improved: Include Code Snippets CSS and JS source code in distributed package.
* Improved: Don't delete data from plugin if deleting Code Snippets Free while Code Snippets Pro is active.
* Improved: Streamlined user interface and experience in Gutenberg editor blocks. (PRO)
* Added: Option to choose from 44 different themes for the Prism code highlighter in the source editor block and Elementor widget. (PRO)
* Improved: Compatibility of Elementor widgets with the latest version of Elementor. (PRO)
* Improved: Replace icon font menu icon with embedded SVG icon.

= 3.1.2 (3 July 2022) =
* Updated external links and branding for Code Snippets Pro.
* Improved: Add link URLs to settings pages, as an alternative to in-page navigation.
* Fixed: Various fixes to block editor scripts. (PRO)
* Fixed: Improved visual style of Gutenberg editor blocks. (PRO)

= 3.1.1 (13 Jun 2022) =
* Fixed: Download snippets feature not including snippet content.
* Fixed: Alignment of 'opens externally' dashicon.
* Improved: Added additional parameters to `code_snippets/export/filename` filter.

= 3.1.0 (17 May 2022) =
* Fixed: Caching inconsistencies preventing snippets and settings from refreshing on sites with persistent object caching.
* Improved: Simplified database queries.
* Added: More comprehensive cache coverage, including for active snippets.
* Added: Icon to 'Go Pro' button indicating it opens an external tab.
* Improved: Allow display styles in snippet descriptions.

= 3.0.1 (14 May 2022) =
* Fixed: Incompatibility issue with earlier versions of PHP.

= 3.0.0 (14 May 2022) =

__Added__

* Added: HTML content snippets for displaying as shortcodes or including in the page head or footer area.
* Added: Notice reminding users to upgrade unsupported PHP versions.
* Added: Visual settings to add attributes to shortcodes.
* Added: Shortcode buttons to the post and page content editors.
* Added: Basic REST API endpoints.
* Added: Snippet type column to the snippets table.
* Added: Snippet type badges to Edit and Add New Snippet pages.
* Added: Setting to control whether the current line of the code editor is highlighted.
* Added: Display a warning when saving a snippet with missing title or code.
* Added: Add suffix to title of cloned snippets.

__Changed__

* Improved: Updated plugin code to use namespaces, preventing name collisions with other plugins.
* Improved: Added key for the 'active' and 'scope' database table columns to speed up queries.
* Improved: Redirect from edit menu if not editing a valid snippet.
* Improved: Moved activation switch into its own table column.
* Improved: Updated code documentation according to WordPress standards.
* Improved: Added snippet type labels to the tabs on the Snippets page.
* Improved: Split settings page into tabs.
* Improved: Use the version of CodeMirror included with WordPress where possible to inherit the additional built-in features.
* Improved: Added hover effect to priority settings in the snippets table to show that they are editable.
* Fixed: Snippets table layout on smaller screens.

__Deprecated__

* Removed: Deprecated functions and compatibility code for unsupported PHP versions.
* Removed: Option to disable snippet scopes.

__New in Pro__

* Added: CSS style snippets for the site front-end and admin area.
* Added: JavaScript snippets for the site head and body area on the front-end.
* Added: Browser cache versioning for CSS and JavaScript snippets.
* Added: Support for exporting and downloading CSS and JavaScript snippets.
* Added: Support for highlighting code on the front-end.
* Added: Editor syntax highlighting for CSS, JavaScript and HTML snippets.
* Added: Button to preview full file when editing CSS or JavaScript snippets.
* Added: Option to minify CSS and JavaScript snippets.
* Added: Gutenberg editor block for displaying content snippets.
* Added: Gutenberg editor block for displaying snippet source code.
* Added: Elementor widget for displaying content snippets.
* Added: Elementor widget for displaying snippet source code.

= 2.14.6 (13 May 2022) =
* Fixed: Issue with processing uploaded import files.
* Fixed: Issue with processing tag filters.

= 2.14.5 (10 May 2022) =
* Fixed: Incompatibility issue with older versions of PHP.

= 2.14.4 (5 May 2022) =
* Fixed: Prevent array key errors when loading the snippet table with unknown order values.

= 2.14.3 (10 Dec 2021) =
* Fixed: Potential security issue outputting snippets-safe-mode query variable value as-is. Thanks to Krzysztof Zając for reporting.

= 2.14.2 (9 Sep 2021) =
* Fixed: Prevent network snippets table from being created on single-site installs.
* Added translations:
    - Spanish by [Ibidem Group](https://www.ibidemgroup.com)
    - Urdu by [Samuel Badree](https://mobilemall.pk/)
    - Greek by [Toni Bishop from Jrop](https://www.jrop.com/)
* Added: Support for `:class` syntax to the code validator.
* Added: PHP8 support to the code linter.
* Added: Color picker feature to the code editor.
* Added: Failsafe to prevent multiple versions of Code Snippets from running simultaneously.

= 2.14.1 (10 Mar 2021) =
* Added: Czech translation by [Lukáš Tesař](https://github.com/atomicf4ll).
* Fixed: Code validator now supports `function_exists` and `class_exists` checks.
* Fixed: Code validator now supports anonymous functions.
* Fixed: Issue with saving the hidden columns setting.
* Fixed: Replaced the outdated tag-it library with [tagger](https://github.com/jcubic/tagger) for powering the snippet tags editor.
* Added: Code direction setting for RTL users.
* Updated CodeMirror to version 5.59.4.
* Added: Additional action hooks and search API thanks to [@Spreeuw](https://github.com/Spreeuw).

= 2.14.0 (26 Jan 2020) =
* Updated CodeMirror to version 5.50.2.
* Added: Basic error checking for duplicate functions and classes.
* Updated Italian translations to fix display issues – thanks to [Francesco Marino](https://360fun.net).
* Fixed: Ordering snippets in the table by name will now be case-insensitive.
* Added: Additional API options for retrieving snippets.
* Fixed: Code editor will now properly highlight embedded HTML, CSS and JavaScript code.
* Changed the indicator color for inactive snippets from red to grey.
* Fixed a bug preventing the editor theme from being set to default.
* Added: Store the time and date when each snippet was last modified.
* Added: Basic error checking when activating snippets.
* Fixed: Ensure that imported snippets are always inactive.
* Fixed: Check the referer on the import menu to prevent CSRF attacks. Thanks to [Chloe with the Wordfence Threat Intelligence team](https://www.wordfence.com/blog/author/wfchloe/) for reporting.
* Fixed: Ensure that individual snippet action links use proper verification.

**[The full changelog is available on GitHub](https://github.com/sheabunge/code-snippets/blob/master/CHANGELOG.md)**

== Upgrade Notice ==

= 3.2.2 =
Tested with WordPress 6.1.1.
