{"id":142194,"date":"2021-07-09T20:44:35","date_gmt":"2021-07-09T20:44:35","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/heckler\/"},"modified":"2021-07-11T07:31:26","modified_gmt":"2021-07-11T07:31:26","slug":"heckler","status":"publish","type":"plugin","link":"https:\/\/azb.wordpress.org\/plugins\/heckler\/","author":18762460,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.0.2","stable_tag":"0.0.2","tested":"5.7.15","requires":"5.0","requires_php":"5.6","requires_plugins":"","header_name":"Heckler","header_author":"Ma\u0161tarija","header_description":"Output custom reusable pieces of text or code on any action hook.","assets_banners_color":"","last_updated":"2021-07-11 07:31:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mastarija.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":1011,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq"],"tags":{"0.0.0":{"tag":"0.0.0","author":"mastarija","date":"2021-07-09 20:47:08"},"0.0.1":{"tag":"0.0.1","author":"mastarija","date":"2021-07-10 19:13:31"},"0.0.2":{"tag":"0.0.2","author":"mastarija","date":"2021-07-11 07:31:26"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":2562012,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.0.0","0.0.1","0.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2561461,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2561461,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":2561461,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":2561461,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":2561461,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":2561461,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":2561461,"resolution":"7","location":"assets","locale":""}},"screenshots":{"1":"Simple text editor content, with Elementor support.","2":"Hook list used to define hooks on which to display your content, priority, number of arguments (if you are using Code) and if this hook is active or inactive.","3":"Content displayed on the <code>wp_footer<\/code> hook.","4":"A Rule editor with VIM support.","5":"A Code editor with VIM support.","6":"Heckler shortcode embedded into the content.","7":"Output of a Heckler shortcode content generated through a Code script."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1220,1214,2452,80],"plugin_category":[43],"plugin_contributors":[201173],"plugin_business_model":[],"class_list":["post-142194","plugin","type-plugin","status-publish","hentry","plugin_tags-block","plugin_tags-code","plugin_tags-hook","plugin_tags-shortcode","plugin_category-customization","plugin_contributors-mastarija","plugin_committers-mastarija"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/heckler\/assets\/icon.svg?rev=2562012","icon":"https:\/\/ps.w.org\/heckler\/assets\/icon.svg?rev=2562012","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-1.png?rev=2561461","caption":"Simple text editor content, with Elementor support."},{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-2.png?rev=2561461","caption":"Hook list used to define hooks on which to display your content, priority, number of arguments (if you are using Code) and if this hook is active or inactive."},{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-3.png?rev=2561461","caption":"Content displayed on the <code>wp_footer<\/code> hook."},{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-4.png?rev=2561461","caption":"A Rule editor with VIM support."},{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-5.png?rev=2561461","caption":"A Code editor with VIM support."},{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-6.png?rev=2561461","caption":"Heckler shortcode embedded into the content."},{"src":"https:\/\/ps.w.org\/heckler\/assets\/screenshot-7.png?rev=2561461","caption":"Output of a Heckler shortcode content generated through a Code script."}],"raw_content":"<!--section=description-->\n<p>Do you often need to create small pieces of content that should be present on e.g. every product page, but don't justify writing a full on plugin?<\/p>\n\n<p>Do you mostly work with designers or users that sometimes need to update some of that content, but they don't know their way through Git, FTP or code in general?<\/p>\n\n<p>If you've answered yes to any of those two questions then this plugin is for you!<\/p>\n\n<p>Heckler allows you to create reusable pieces of code or text and execute \/ display them on any wordpress hook (after <code>init<\/code>) or use them as a simple shortcode within your content.<\/p>\n\n<p>If you have some coding skills, you can programm a rule which determines if the text should be shown, or the code should be hooked or executed.<\/p>\n\n<p>As an added bonus, there's even a VIM mode in the code editor to make your life as a developer in this world of makeshift plugins just a little more bearable.<\/p>\n\n<p>If you wish to contribute to this wonderfully horrible plugin you can do so on its <a href=\"https:\/\/github.com\/mastarija\/heckler\">GitHub repository<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='elementor%3F'><h3>Elementor?<\/h3><\/dt>\n<dd><p>Yes, this plugin supports the <a href=\"https:\/\/wordpress.org\/plugins\/elementor\/\">Elementor<\/a> as this is what my team works with the most these days. Other builders could be added at a later date.<\/p><\/dd>\n<dt id='how%20does%20it%20work%3F'><h3>How does it work?<\/h3><\/dt>\n<dd><p>This plugin stores code snippets in the plugin subfolder <code>usr<\/code> and text snippets in the WordPress database as a Heckler post.<\/p>\n\n<p>During the WordPress <code>init<\/code> phase, the plugin checks for all defined snippets that have defined hooks, and if the <code>rule<\/code> returns true, it hooks the code (loaded from the <code>usr<\/code> folder) or the text to the defined hooks.<\/p>\n\n<p>In case a snippet is used as a shortcode, before the shortcode is executed the <code>rule<\/code> is checked, and if it passes, only then is the text rendered or the code executed.<\/p><\/dd>\n<dt id='how%20is%20this%20not%20a%20security%20hazard%3F'><h3>How is this not a security hazard?<\/h3><\/dt>\n<dd><p>Good question. This plugin uses <a href=\"https:\/\/codex.wordpress.org\/WordPress_Nonces\">nonces<\/a> to protect the edit form, and in order to access the edit form you need to have highest possible privilegies. To make sure that a user has modified a snippet from within the Hecker UI the <code>save_post_heckler<\/code> hook is used. Also, all the stored code snippets are prefixed with <code>&lt;?php if ( !defined( 'ABSPATH' ) ) return;<\/code> to ensure a snippet can't be accessed directly without loading the WordPress first.<\/p>\n\n<p>In other words, it's as much of a hazard as the plugin editor, or the plugin installer that come by default with the WordPress installation.<\/p>\n\n<p>If this is still too much of a risk for you, then this plugin might not be for you.<\/p><\/dd>\n\n<\/dl>","raw_excerpt":"Create custom text and code snippets, and attach them to hooks or use them as short codes, along with programmable display rules.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/142194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=142194"}],"author":[{"embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mastarija"}],"wp:attachment":[{"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=142194"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=142194"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=142194"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=142194"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=142194"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/azb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=142194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}