File: /var/www/html/wpmuhibbah_err/wp-content/plugins/give/src/Onboarding/Wizard/FormPreview.php
<?php
namespace Give\Onboarding\Wizard;
defined('ABSPATH') || exit;
use Give\Helpers\EnqueueScript;
use Give\Onboarding\FormRepository;
use Give_Scripts;
/**
* Form Preview page class
*
* Responsible for setting up and rendering Form Preview page at wp-admin/?page=give-form-preview
* This URL is used as the src for an iframe which appears inside the Onboarding Wizard.
*
* @since 2.8.0
*/
class FormPreview
{
/** @var string $slug Page slug used for displaying form preview */
protected $slug = 'give-form-preview';
/** @var FormRepository */
protected $formRepository;
public function __construct(FormRepository $formRepository)
{
$this->formRepository = $formRepository;
}
/**
* Adds Form Preview as dashboard page
*
* Register Form Preview as an admin page route
*
* @since 2.8.0
**/
public function add_page()
{
add_submenu_page('', '', '', 'manage_options', $this->slug);
}
/**
* Conditionally renders Form Preview markup
*
* If the current page query matches the form preview's slug, method renders the form preview.
*
* @since 2.8.0
**/
public function setup_form_preview()
{
if (empty($_GET['page']) || $this->slug !== $_GET['page']) { // WPCS: CSRF ok, input var ok.
return;
} else {
$this->render_page();
}
}
/**
* Renders form preview markup
*
* Uses an object buffer to display the form preview template
*
* @since 2.8.0
**/
public function render_page()
{
$this->register_scripts();
ob_start();
include_once plugin_dir_path(__FILE__) . 'templates/form-preview.php';
exit;
}
/**
* Registers form preview scripts/styles
*
* @since 2.8.0
**/
protected function register_scripts()
{
wp_register_style(
'give-styles',
(new Give_Scripts)->get_frontend_stylesheet_uri(),
[],
GIVE_VERSION,
'all'
);
EnqueueScript::make('give', 'build/assets/dist/js/give.js' )
->registerTranslations()
->register();
}
/**
* Returns the ID of the form used for the form preview
*
* @since 2.8.0
**/
protected function get_preview_form_id()
{
return $this->formRepository->getOrMake();
}
}