* * @copyright (c) 2018, César Maeso (https://superadmin.es) */ /** * Integration class. * * @since 0.0.0 */ class ARGPD_Integration { /** * Parent plugin class. * * @var string * @since 0.0.0 */ protected $plugin = null; /** * Constructor. * * @since 0.0.0 * * @param Main plugin object. */ public function __construct( $plugin ) { // set parent plugin $this->plugin = $plugin; // register scripts and styles $this->register(); // initiate our hooks $this->hooks(); } /** * Register scripts and Styles for cookies banner * * @since 0.0.0 */ public function register(){ /* Register JavaScript */ wp_register_script( 'argpd-cookies-banner', $this->plugin->url . 'assets/js/cookies-banner.js', array( 'jquery' ), $this->plugin->version ); /* Register Style */ $settings= $this->plugin->argpd_settings->get_settings(); wp_register_style( 'argpd-cookies-banner', //$this->plugin->url . 'assets/css/cookies-banner.css', sprintf("%sassets/css/cookies-banner-%s.css", $this->plugin->url, $settings['cookies-theme']), array(), $this->plugin->version ); /* Register Style duty to inform */ wp_register_style( 'argpd-informbox', sprintf("%sassets/css/inform-box-%s.css", $this->plugin->url, $settings['informbox-theme']), array(), $this->plugin->version ); } /** * Initiate our hooks. * * @since 0.0.0 */ public function hooks() { $settings= $this->plugin->argpd_settings->get_settings(); if ($settings['option-footer']){ add_action('wp_footer', array($this, 'show_footer_links')); } // enque theme styles wp_enqueue_style( 'argpd-cookies-banner' ); // add hooks if option-comments option is checked if ($settings['option-comments']) while(true){ // disable if jetpack-comments is active if (class_exists('Jetpack') && Jetpack::is_module_active( 'comments')) break; add_action('pre_comment_on_post', array($this, 'check_consentimiento')); add_filter('comment_form_submit_field', array($this, 'addField')); break; } // add hooks if option-cookies option is checked if ($settings['option-cookies']){ add_action('wp_enqueue_scripts', array($this, 'enqueue')); add_action('wp_footer', array($this, 'cookiesbanner_footer')); } // add hooks if have a duty to inform if ($settings['option-cookies'] || $settings['option-forms']){ // add css styles wp_enqueue_style( 'argpd-informbox' ); } } /** * Engueue scripts and styles * * @since 0.0.0 */ public function enqueue(){ /** * Allows to disable enqueuing files on a particular page */ $enqueue_agrpd = apply_filters( 'wp_agrpd_enqueue', true ); // Enqueue Scripts wp_enqueue_script( 'argpd-cookies-banner' ); // Enqueue Styles //wp_enqueue_style( 'argpd-cookies-banner' ); } /** * Add view for comment form submit * * @since 0.0.0 */ public function addField($submitField = '') { $consentimiento_view= $this->plugin->pages->consentimiento_view(); $deber_de_informar_view= $this->plugin->pages->deber_de_informar_view(); return $consentimiento_view . $deber_de_informar_view . $submitField; } /** * Test if privacy is checked in comments * * @since 0.0.0 */ public function check_consentimiento() { if (!isset($_POST['agdpr-consentimiento'])) { wp_die( __( 'Para poder comentar debes aceptar la política de privacidad.' ) ); } } /** * Echo cookies banner * * @since 0.0.0 */ public function cookiesbanner_footer() { echo $this->plugin->pages->cookiesbanner_view(); } /** * Echo cookies banner * * @since 1.0.0 */ public function show_footer_links() { echo $this->plugin->pages->footer_links_view(); } }