Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
flexible-shipping
/
vendor_prefixed
/
wpdesk
/
wp-helpscout-beacon
/
src
/
Beacon
:
Beacon.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace FSVendor\WPDesk\Beacon; /** * Can display HelpScout Beacon. For more info check https://secure.helpscout.net/settings/beacons/ */ class Beacon { /** * Beacon UUID from HelpScout. * * @var string */ private $beacon_id; /** * When to display beacon. * * @var BeaconShouldShowStrategy */ private $activation_strategy; /** * @var string */ private $assets_url; /** * @var string */ private $beacon_search_elements_class; /** * @var string */ protected $confirmation_message; /** * @var string */ private $beacon_image_content; /** * Beacon constructor. * * @param string $beacon_id . * @param BeaconShouldShowStrategy $strategy When to display beacon. * @param string $assets_url With ending / */ public function __construct($beacon_id, BeaconShouldShowStrategy $strategy, $assets_url, $beacon_search_elements_class = 'hs-beacon-search', $beacon_image_content = '') { $this->beacon_id = $beacon_id; $this->activation_strategy = $strategy; $this->assets_url = $assets_url; $this->beacon_search_elements_class = $beacon_search_elements_class; $this->confirmation_message = __('When you click OK we will open our HelpScout beacon where you can find answers to your questions. This beacon will load our help articles and also potentially set cookies.', 'flexible-shipping'); $this->beacon_image_content = $beacon_image_content; } /** * @return string */ public function get_beacon_id() { return $this->beacon_id; } /** * Hooks. */ public function hooks() { add_action('admin_footer', [$this, 'add_beacon_to_footer']); add_action('admin_enqueue_scripts', [$this, 'add_beacon_js']); } /** * Should display beacon? * * @return bool */ protected function should_display_beacon() { return apply_filters('helpscout-beacon/should-display-beacon', $this->activation_strategy->shouldDisplay()); } public function add_beacon_js() { if ($this->should_display_beacon()) { wp_enqueue_style('hs-beacon', $this->assets_url . 'css/beacon.css', []); wp_enqueue_script('hs-beacon', $this->assets_url . 'js/hs-bc.js', []); } } /** * Display Beacon script. */ public function add_beacon_to_footer() { if ($this->should_display_beacon()) { $beacon_id = $this->beacon_id; $confirmation_message = __('When you click OK we will open our HelpScout beacon where you can find answers to your questions. This beacon will load our help articles and also potentially set cookies.', 'flexible-shipping'); $beacon_search_elements_class = $this->beacon_search_elements_class; $confirmation_message = $this->confirmation_message; $beacon_image_content = $this->beacon_image_content; include __DIR__ . '/templates/html-beacon-script.php'; } } }