File: /var/www/html/wpmuhibbah_err/wp-content/plugins/give/src/Campaigns/Shortcodes/CampaignShortcode.php
<?php
namespace Give\Campaigns\Shortcodes;
use Give\Campaigns\Actions\LoadCampaignPublicOptions;
use Give\Framework\Support\Facades\Scripts\ScriptAsset;
use Give\Helpers\Language;
/**
* @since 4.2.0
*/
class CampaignShortcode
{
/**
* @since 4.7.0 updated to use ShortcodeRenderController
* @since 4.2.0
*
* @param array $atts
*
* @return string
*/
public function renderShortcode($atts): string
{
$this->loadAssets();
$attributes = $this->parseAttributes($atts);
$renderFile = GIVE_PLUGIN_DIR . 'src/Campaigns/Blocks/Campaign/render.php';
return ShortcodeRenderController::renderWithBlockContext(
$renderFile,
'givewp/campaign-block',
$attributes
);
}
/**
* @since 4.3.0 Use info from asset.php file and set script translations
* @since 4.2.0
*/
public function loadAssets()
{
give(LoadCampaignPublicOptions::class)();
$handleName = 'givewp-campaign-block-app';
$asset = ScriptAsset::get(GIVE_PLUGIN_DIR . 'build/campaignBlockApp.asset.php');
wp_enqueue_script(
$handleName,
GIVE_PLUGIN_URL . 'build/campaignBlockApp.js',
$asset['dependencies'],
$asset['version'],
true
);
Language::setScriptTranslations($handleName);
wp_enqueue_style(
$handleName,
GIVE_PLUGIN_URL . 'build/campaignBlockApp.css',
[],
$asset['version']
);
wp_enqueue_style('givewp-design-system-foundation');
}
/**
* @since 4.2.0
*/
private function parseAttributes($atts): array
{
$atts = shortcode_atts([
'campaign_id' => '',
'show_image' => true,
'show_description' => true,
'show_goal' => true,
], $atts, 'givewp_campaign');
return [
'campaignId' => $atts['campaign_id'],
'showImage' => filter_var($atts['show_image'], FILTER_VALIDATE_BOOLEAN),
'showDescription' => filter_var($atts['show_description'], FILTER_VALIDATE_BOOLEAN),
'showGoal' => filter_var($atts['show_goal'], FILTER_VALIDATE_BOOLEAN),
];
}
}