Server IP : 104.21.93.192 / Your IP : 216.73.216.84 Web Server : LiteSpeed System : Linux premium900.web-hosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : redwjova ( 1790) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/redwjova/clevorio.com/wp-content/plugins/smartmag-core/blocks/ |
Upload File : |
<?php namespace Bunyad\Blocks; use Bunyad; /** * Helper methods for Blocks & Listing Archives */ class Ajax { public function init() { add_action('wp_ajax_nopriv_bunyad_block', [$this, 'render_block']); add_action('wp_ajax_bunyad_block', [$this, 'render_block']); } /** * Callback: AJAX request, render block. * * @return void */ public function render_block() { if (!isset($_REQUEST['block'])) { wp_die('0'); } $block = $_REQUEST['block']; if (!isset($block['props']) || !isset($block['id'])) { wp_die('0'); } $block_class = str_replace( 'Bunyad\Blocks\\', '', Bunyad::file_to_class_name($block['id']) ); $block['props'] = (array) $block['props']; $query_type = $block['props']['query_type'] ?? ''; // Can't support main query here, for obvious reasons. if (!in_array($query_type, ['section', 'custom'])) { $block['props']['query_type'] = 'custom'; } if ($query_type === 'section' && empty($block['props']['section_query'])) { $block['props']['query_type'] = 'custom'; } // Set a max posts per page limit to prevent DOS. if (isset($block['props']['posts'])) { $block['props']['posts'] = min(intval($block['props']['posts']), 100); } $block['props'] = $this->process_booleans($block['props']); /** @var \Bunyad\Blocks\Base\LoopBlock $block */ $block = Bunyad::blocks()->load( 'Loops\\' . $block_class, $block['props'] ); $block->render(); wp_die(); } /** * Convert string true/false to boolean values. * * @param array $props * @return array */ protected function process_booleans($props) { foreach ($props as $prop => $value) { if ($value === "true" || $value === "false") { $props[$prop] = \filter_var($value, FILTER_VALIDATE_BOOLEAN); } } return $props; } }