first commit
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
namespace HelloElementor\Includes\Customizer;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly.
|
||||
}
|
||||
|
||||
class Hello_Customizer_Action_Links extends \WP_Customize_Control {
|
||||
|
||||
// Whitelist content parameter
|
||||
public $content = '';
|
||||
|
||||
/**
|
||||
* Render the control's content.
|
||||
*
|
||||
* Allows the content to be overridden without having to rewrite the wrapper.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function render_content() {
|
||||
$this->print_customizer_action_links();
|
||||
|
||||
if ( isset( $this->description ) ) {
|
||||
echo '<span class="description customize-control-description">' . wp_kses_post( $this->description ) . '</span>';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print customizer action links.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function print_customizer_action_links() {
|
||||
if ( ! function_exists( 'get_plugins' ) ) {
|
||||
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
||||
}
|
||||
|
||||
$action_link_data = [];
|
||||
$action_link_type = '';
|
||||
$installed_plugins = get_plugins();
|
||||
|
||||
if ( ! isset( $installed_plugins['elementor/elementor.php'] ) ) {
|
||||
$action_link_type = 'install-elementor';
|
||||
} elseif ( ! defined( 'ELEMENTOR_VERSION' ) ) {
|
||||
$action_link_type = 'activate-elementor';
|
||||
} elseif ( ! hello_header_footer_experiment_active() ) {
|
||||
$action_link_type = 'activate-header-footer-experiment';
|
||||
} else {
|
||||
$action_link_type = 'style-header-footer';
|
||||
}
|
||||
|
||||
switch ( $action_link_type ) {
|
||||
case 'install-elementor':
|
||||
$action_link_data = [
|
||||
'image' => get_template_directory_uri() . '/assets/images/elementor.svg',
|
||||
'alt' => esc_attr__( 'Elementor', 'hello-elementor' ),
|
||||
'title' => esc_html__( 'Install Elementor', 'hello-elementor' ),
|
||||
'message' => esc_html__( 'Create cross-site header & footer using Elementor.', 'hello-elementor' ),
|
||||
'button' => esc_html__( 'Install Elementor', 'hello-elementor' ),
|
||||
'link' => wp_nonce_url(
|
||||
add_query_arg(
|
||||
[
|
||||
'action' => 'install-plugin',
|
||||
'plugin' => 'elementor',
|
||||
],
|
||||
admin_url( 'update.php' )
|
||||
),
|
||||
'install-plugin_elementor'
|
||||
),
|
||||
];
|
||||
break;
|
||||
case 'activate-elementor':
|
||||
$action_link_data = [
|
||||
'image' => get_template_directory_uri() . '/assets/images/elementor.svg',
|
||||
'alt' => esc_attr__( 'Elementor', 'hello-elementor' ),
|
||||
'title' => esc_html__( 'Activate Elementor', 'hello-elementor' ),
|
||||
'message' => esc_html__( 'Create cross-site header & footer using Elementor.', 'hello-elementor' ),
|
||||
'button' => esc_html__( 'Activate Elementor', 'hello-elementor' ),
|
||||
'link' => wp_nonce_url( 'plugins.php?action=activate&plugin=elementor/elementor.php', 'activate-plugin_elementor/elementor.php' ),
|
||||
];
|
||||
break;
|
||||
case 'activate-header-footer-experiment':
|
||||
$action_link_data = [
|
||||
'image' => get_template_directory_uri() . '/assets/images/elementor.svg',
|
||||
'alt' => esc_attr__( 'Elementor', 'hello-elementor' ),
|
||||
'title' => esc_html__( 'Style using Elementor', 'hello-elementor' ),
|
||||
'message' => esc_html__( 'Design your cross-site header & footer from Elementor’s "Site Settings" panel.', 'hello-elementor' ),
|
||||
'button' => esc_html__( 'Activate header & footer experiment', 'hello-elementor' ),
|
||||
'link' => wp_nonce_url( 'admin.php?page=elementor#tab-experiments' ),
|
||||
];
|
||||
break;
|
||||
case 'style-header-footer':
|
||||
$action_link_data = [
|
||||
'image' => get_template_directory_uri() . '/assets/images/elementor.svg',
|
||||
'alt' => esc_attr__( 'Elementor', 'hello-elementor' ),
|
||||
'title' => esc_html__( 'Style cross-site header & footer', 'hello-elementor' ),
|
||||
'message' => esc_html__( 'Customize your cross-site header & footer from Elementor’s "Site Settings" panel.', 'hello-elementor' ),
|
||||
'button' => esc_html__( 'Start Designing', 'hello-elementor' ),
|
||||
'link' => wp_nonce_url( 'post.php?post=' . get_option( 'elementor_active_kit' ) . '&action=elementor' ),
|
||||
];
|
||||
break;
|
||||
}
|
||||
|
||||
$customizer_content = $this->get_customizer_action_links_html( $action_link_data );
|
||||
|
||||
echo wp_kses_post( $customizer_content );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the customizer action links HTML.
|
||||
*
|
||||
* @param array $data
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function get_customizer_action_links_html( $data ) {
|
||||
if (
|
||||
empty( $data )
|
||||
|| ! isset( $data['image'] )
|
||||
|| ! isset( $data['alt'] )
|
||||
|| ! isset( $data['title'] )
|
||||
|| ! isset( $data['message'] )
|
||||
|| ! isset( $data['link'] )
|
||||
|| ! isset( $data['button'] )
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
return sprintf(
|
||||
'<div class="hello-action-links">
|
||||
<img src="%1$s" alt="%2$s">
|
||||
<p class="hello-action-links-title">%3$s</p>
|
||||
<p class="hello-action-links-message">%4$s</p>
|
||||
<a class="button button-primary" target="_blank" href="%5$s">%6$s</a>
|
||||
</div>',
|
||||
$data['image'],
|
||||
$data['alt'],
|
||||
$data['title'],
|
||||
$data['message'],
|
||||
$data['link'],
|
||||
$data['button'],
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user