This commit is contained in:
@@ -20,3 +20,9 @@ install:
|
|||||||
|
|
||||||
package: install
|
package: install
|
||||||
gulp package
|
gulp package
|
||||||
|
|
||||||
|
postinstall:
|
||||||
|
cp node_modules/klaro/dist/klaro.js assets/klaro.js
|
||||||
|
cp node_modules/klaro/dist/klaro.min.css assets/klaro.min.css
|
||||||
|
|
||||||
|
postupdate: postinstall
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
"$schema": "https://getcomposer.org/schema.json",
|
"$schema": "https://getcomposer.org/schema.json",
|
||||||
"name": "cleverogre/plugin",
|
"name": "cleverogre/plugin",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"title": "Example",
|
"title": "Ogre Consent",
|
||||||
"description": "Example plugin",
|
"description": "Ogre Consent plugin",
|
||||||
"author": "CleverOgre",
|
"author": "CleverOgre",
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0+",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
Generated
+2
-2
@@ -12,7 +12,7 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@git.cleverogre.com:cleverogre/plugin-framework.git",
|
"url": "git@git.cleverogre.com:cleverogre/plugin-framework.git",
|
||||||
"reference": "e7c2be1862b24e9c9b861f18d67b2aacafbe9946"
|
"reference": "0b16ec6f70a5a3852a1da9189ebef8363c2d7436"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"cleverogre/plugin-update-checker": "dev-main",
|
"cleverogre/plugin-update-checker": "dev-main",
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
"Plugin",
|
"Plugin",
|
||||||
"WordPress"
|
"WordPress"
|
||||||
],
|
],
|
||||||
"time": "2026-07-20T19:59:33+00:00"
|
"time": "2026-07-21T13:43:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cleverogre/plugin-update-checker",
|
"name": "cleverogre/plugin-update-checker",
|
||||||
|
|||||||
@@ -0,0 +1,120 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent;
|
||||||
|
|
||||||
|
use Override;
|
||||||
|
use Ogre\Singleton;
|
||||||
|
use WP_Block;
|
||||||
|
use WP_HTML_Tag_Processor;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
abstract class Service {
|
||||||
|
use Singleton;
|
||||||
|
|
||||||
|
protected string $name;
|
||||||
|
protected bool $contextualConsentOnly = false;
|
||||||
|
|
||||||
|
protected function __construct(string $name) {
|
||||||
|
$this->name = $name;
|
||||||
|
Services::instance()->register($this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_config(): array
|
||||||
|
{
|
||||||
|
$config = [
|
||||||
|
'name' => $this->name,
|
||||||
|
'purposes' => $this->get_purposes(),
|
||||||
|
];
|
||||||
|
if ($this->contextualConsentOnly) $config['contextualConsentOnly'] = true;
|
||||||
|
return $config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_purposes(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'marketing'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class ScriptService extends Service {
|
||||||
|
protected string $handle;
|
||||||
|
|
||||||
|
protected function __construct(string $handle, string $name = '') {
|
||||||
|
$this->handle = $handle;
|
||||||
|
parent::__construct($name ?? $handle);
|
||||||
|
add_filter('script_loader_tag', [$this, 'script_loader_tag'], 10, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function script_loader_tag(string $tag, string $handle, string $src): string
|
||||||
|
{
|
||||||
|
if ($handle !== $this->handle) return $tag;
|
||||||
|
$tags = new WP_HTML_Tag_Processor($tag);
|
||||||
|
if ($tags->next_tag('script')) {
|
||||||
|
$tags->set_attribute('type', 'text/plain');
|
||||||
|
$tags->set_attribute('data-name', $this->name);
|
||||||
|
if (!str_starts_with(($src = $tags->get_attribute('src')), site_url())) {
|
||||||
|
$tags->remove_attribute('src');
|
||||||
|
$tags->set_attribute('data-src', $src);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class BlockService extends Service {
|
||||||
|
|
||||||
|
protected string $blockName;
|
||||||
|
|
||||||
|
protected function __construct(string $blockName, string $name = '') {
|
||||||
|
$this->blockName = $blockName;
|
||||||
|
parent::__construct($name ?? $blockName);
|
||||||
|
add_filter("render_block_{$blockName}", [$this, 'render_block'], 10, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract public function render_block(string $block_content, array $block, WP_Block $instance): string;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class GoogleTagManagerService extends ScriptService {
|
||||||
|
|
||||||
|
protected string $consent_id;
|
||||||
|
|
||||||
|
protected function __construct(string $handle, string $name = '', string $consent_id = '') {
|
||||||
|
$this->consent_id = $consent_id ?? ($name ?? $handle);
|
||||||
|
parent::__construct($handle, $name);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Override]
|
||||||
|
public function get_config(): array
|
||||||
|
{
|
||||||
|
return array_merge(
|
||||||
|
parent::get_config(),
|
||||||
|
[
|
||||||
|
'cookies' => [
|
||||||
|
'/^_ga(_.*)?/'
|
||||||
|
],
|
||||||
|
'onAccept' => sprintf(
|
||||||
|
"gtag('consent', 'update', {'%s': 'granted'})",
|
||||||
|
esc_js($this->consent_id)
|
||||||
|
),
|
||||||
|
'onDecline' => sprintf(
|
||||||
|
"gtag('consent', 'update', {'%s': 'denied'})",
|
||||||
|
esc_js($this->consent_id)
|
||||||
|
),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent;
|
||||||
|
|
||||||
|
use Ogre\Consent as Plugin;
|
||||||
|
use Ogre\Singleton;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
final class Config {
|
||||||
|
use Singleton;
|
||||||
|
|
||||||
|
protected function __construct() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_config(): array
|
||||||
|
{
|
||||||
|
// See https://klaro.org/docs/integration/annotated-configuration
|
||||||
|
$config = [
|
||||||
|
'elementID' => Plugin::get_id(),
|
||||||
|
'storageMethod' => 'localStorage',
|
||||||
|
'storageName' => Plugin::get_id(),
|
||||||
|
'cookieDomain' => parse_url(site_url(), PHP_URL_HOST),
|
||||||
|
'default' => true,
|
||||||
|
'mustConsent' => true,
|
||||||
|
'acceptAll' => true,
|
||||||
|
'hideLearnMore' => true,
|
||||||
|
'services' => Services::instance()->get_config(),
|
||||||
|
];
|
||||||
|
return apply_filters('ogre_consent_config', $config);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::instance();
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent;
|
||||||
|
|
||||||
|
use Ogre\Consent as Plugin;
|
||||||
|
use Ogre\Singleton;
|
||||||
|
use WP_HTML_Tag_Processor;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
final class Script {
|
||||||
|
use Singleton;
|
||||||
|
|
||||||
|
private const HANDLE = 'klaro';
|
||||||
|
private const CONFIG = 'klaroConfig';
|
||||||
|
|
||||||
|
protected function __construct() {
|
||||||
|
add_action('wp_enqueue_scripts', [$this, 'wp_enqueue_scripts']);
|
||||||
|
add_filter('script_loader_tag', [$this, 'script_loader_tag'], 10, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function wp_enqueue_scripts(): void
|
||||||
|
{
|
||||||
|
wp_enqueue_script(
|
||||||
|
self::HANDLE,
|
||||||
|
Plugin::get_url('assets/klaro.js'),
|
||||||
|
ver: Plugin::get_version()
|
||||||
|
);
|
||||||
|
|
||||||
|
wp_localize_script(
|
||||||
|
self::HANDLE,
|
||||||
|
self::CONFIG,
|
||||||
|
Config::instance()->get_config()
|
||||||
|
);
|
||||||
|
|
||||||
|
wp_enqueue_style(
|
||||||
|
self::HANDLE,
|
||||||
|
Plugin::get_url('assets/klaro.min.css'),
|
||||||
|
ver: Plugin::get_version()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function script_loader_tag(string $tag, string $handle, string $src): string
|
||||||
|
{
|
||||||
|
if ($tag !== self::HANDLE) return $tag;
|
||||||
|
$tags = new WP_HTML_Tag_Processor($tag);
|
||||||
|
if ($tags->next_tag('script')) {
|
||||||
|
$tags->set_attribute('data-config', self::CONFIG);
|
||||||
|
}
|
||||||
|
return $tags->get_updated_html();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Script::instance();
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent;
|
||||||
|
|
||||||
|
use Ogre\Consent as Plugin;
|
||||||
|
use Ogre\Singleton;
|
||||||
|
use WP_HTML_Tag_Processor;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
final class Services {
|
||||||
|
use Singleton;
|
||||||
|
|
||||||
|
protected array $services = [];
|
||||||
|
|
||||||
|
protected function __construct() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function register(Service $service): void
|
||||||
|
{
|
||||||
|
$this->services[] = $service;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_config(): array
|
||||||
|
{
|
||||||
|
return array_map(fn (Service $service): array => $service->get_config(), $this->services);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Services::instance();
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* @package plugin
|
* @package ogre-consent
|
||||||
* @author cleverogre
|
* @author cleverogre
|
||||||
* @copyright 2026 CleverOgre
|
* @copyright 2026 CleverOgre
|
||||||
* @license GLP-3.0-or-later
|
* @license GLP-3.0-or-later
|
||||||
@@ -8,11 +8,11 @@
|
|||||||
* @since 0.0.0
|
* @since 0.0.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ogre\Example;
|
namespace Ogre\Consent;
|
||||||
|
|
||||||
use Override;
|
use Override;
|
||||||
use Ogre\Settings as AbstractSettings;
|
use Ogre\Settings as AbstractSettings;
|
||||||
use Ogre\Example as Plugin;
|
use Ogre\Consent as Plugin;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent\Services;
|
||||||
|
|
||||||
|
use Ogre\Consent\GoogleTagManagerService;
|
||||||
|
use Override;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
final class GoogleAnalytics extends GoogleTagManagerService {
|
||||||
|
|
||||||
|
protected function __construct() {
|
||||||
|
parent::__construct('google-analytics', consent_id: 'analytics_storage');
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Override]
|
||||||
|
public function get_config(): array
|
||||||
|
{
|
||||||
|
return array_merge(
|
||||||
|
parent::get_config(),
|
||||||
|
[
|
||||||
|
'cookies' => [
|
||||||
|
'/^_ga(_.*)?/'
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
GoogleAnalytics::instance();
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent\Services;
|
||||||
|
|
||||||
|
use Ogre\Consent\ScriptService;
|
||||||
|
use Override;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
final class GoogleTagManager extends ScriptService {
|
||||||
|
|
||||||
|
protected function __construct() {
|
||||||
|
parent::__construct('google-tag-manager');
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Override]
|
||||||
|
public function get_config(): array
|
||||||
|
{
|
||||||
|
return array_merge(
|
||||||
|
parent::get_config(),
|
||||||
|
[
|
||||||
|
'required' => true,
|
||||||
|
'onAccept' => "for (let k of Object.keys(opts.consents)) { if (opts.consents[k]) { dataLayer.push({'event': 'ogre-consent-'+k+'-accepted'}) } }",
|
||||||
|
'onInit' => "window.dataLayer = window.dataLayer || []; window.gtag = function() { dataLayer.push(arguments) }; gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied'}); gtag('set', 'ads_data_redaction', true);",
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
GoogleAnalytics::instance();
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @package ogre-consent
|
||||||
|
* @author cleverogre
|
||||||
|
* @copyright 2026 CleverOgre
|
||||||
|
* @license GLP-3.0-or-later
|
||||||
|
* @version 0.0.0
|
||||||
|
* @since 0.0.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Ogre\Consent\Services;
|
||||||
|
|
||||||
|
use Ogre\Consent\BlockService;
|
||||||
|
use WP_Block;
|
||||||
|
use Override;
|
||||||
|
use WP_HTML_Tag_Processor;
|
||||||
|
|
||||||
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
|
final class YouTube extends BlockService {
|
||||||
|
|
||||||
|
protected function __construct() {
|
||||||
|
parent::__construct('core/iframe', 'youtube');
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Override]
|
||||||
|
public function render_block(string $block_content, array $block, WP_Block $instance): string
|
||||||
|
{
|
||||||
|
// TODO: Check block iframe type
|
||||||
|
|
||||||
|
$tags = new WP_HTML_Tag_Processor($block_content);
|
||||||
|
|
||||||
|
if ($tags->next_tag('iframe')) {
|
||||||
|
$tags->set_attribute('data-name', $this->name);
|
||||||
|
$src = $tags->get_attribute('src');
|
||||||
|
$tags->remove_attribute('src');
|
||||||
|
$tags->set_attribute('data-src', $src);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $tags->get_updated_html();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
YouTube::instance();
|
||||||
Generated
+2144
-139
File diff suppressed because it is too large
Load Diff
+9
-2
@@ -2,8 +2,8 @@
|
|||||||
"$schema": "https://www.schemastore.org/package.json",
|
"$schema": "https://www.schemastore.org/package.json",
|
||||||
"name": "cleverogre/plugin",
|
"name": "cleverogre/plugin",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"title": "Example",
|
"title": "Ogre Consent",
|
||||||
"description": "Example plugin",
|
"description": "Ogre Consent plugin",
|
||||||
"author": "CleverOgre",
|
"author": "CleverOgre",
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0+",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@@ -15,11 +15,18 @@
|
|||||||
"node": ">=21.1.0",
|
"node": ">=21.1.0",
|
||||||
"npm": ">=10.2.3"
|
"npm": ">=10.2.3"
|
||||||
},
|
},
|
||||||
|
"scripts": {
|
||||||
|
"postinstall": "make postinstall",
|
||||||
|
"postupdate": "make postupdate"
|
||||||
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "^5.0.0",
|
"gulp": "^5.0.0",
|
||||||
"gulp-clean": "^0.4.0",
|
"gulp-clean": "^0.4.0",
|
||||||
"gulp-cli": "^2.3.0",
|
"gulp-cli": "^2.3.0",
|
||||||
"gulp-filter": "^10.0.0",
|
"gulp-filter": "^10.0.0",
|
||||||
"gulp-zip": "^6.1.0"
|
"gulp-zip": "^6.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"klaro": "^0.7.21"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-13
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Example
|
* Ogre Consent
|
||||||
*
|
*
|
||||||
* @package plugin
|
* @package ogre-consent
|
||||||
* @author cleverogre
|
* @author cleverogre
|
||||||
* @copyright 2026 CleverOgre
|
* @copyright 2026 CleverOgre
|
||||||
* @license GLP-3.0-or-later
|
* @license GLP-3.0-or-later
|
||||||
@@ -10,9 +10,9 @@
|
|||||||
* @since 0.0.0
|
* @since 0.0.0
|
||||||
*
|
*
|
||||||
* @wordpress-plugin
|
* @wordpress-plugin
|
||||||
* Plugin Name: Example
|
* Plugin Name: Ogre Consent
|
||||||
* Plugin URI: https://git.cleverogre.com/cleverogre/plugin/
|
* Plugin URI: https://git.cleverogre.com/cleverogre/ogre-consent/
|
||||||
* Description: Example plugin
|
* Description: Ogre Consent plugin
|
||||||
* Version: 0.0.0
|
* Version: 0.0.0
|
||||||
* Requires at least: 6.0
|
* Requires at least: 6.0
|
||||||
* Requires PHP: 8.2
|
* Requires PHP: 8.2
|
||||||
@@ -21,24 +21,24 @@
|
|||||||
* Text Domain: plugin
|
* Text Domain: plugin
|
||||||
* License: GPLv3 or later
|
* License: GPLv3 or later
|
||||||
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
||||||
* Update URI: https://git.cleverogre.com/cleverogre/plugin/
|
* Update URI: https://git.cleverogre.com/cleverogre/ogre-consent/
|
||||||
* Domain Path: /lang
|
* Domain Path: /lang
|
||||||
* Icon1x: https://plugins.cleverogre.com/wp-content/uploads/plugin-icon-128x128.png
|
* Icon1x: https://plugins.cleverogre.com/wp-content/uploads/ogre-consent-icon-128x128.png
|
||||||
* Icon2x: https://plugins.cleverogre.com/wp-content/uploads/plugin-icon.png
|
* Icon2x: https://plugins.cleverogre.com/wp-content/uploads/ogre-consent-icon.png
|
||||||
* BannerLow: https://plugins.cleverogre.com/wp-content/uploads/plugin-banner-772x250.png
|
* BannerLow: https://plugins.cleverogre.com/wp-content/uploads/ogre-consent-banner-772x250.png
|
||||||
* BannerHigh: https://plugins.cleverogre.com/wp-content/uploads/plugin-banner.png
|
* BannerHigh: https://plugins.cleverogre.com/wp-content/uploads/ogre-consent-banner.png
|
||||||
* Requires License: yes
|
* Requires License: yes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Ogre;
|
namespace Ogre;
|
||||||
|
|
||||||
use Ogre\Example\Settings;
|
use Ogre\Consent\Settings;
|
||||||
|
|
||||||
defined('ABSPATH') || exit;
|
defined('ABSPATH') || exit;
|
||||||
|
|
||||||
require_once 'vendor/autoload.php';
|
require_once 'vendor/autoload.php';
|
||||||
|
|
||||||
final class Example extends Plugin {
|
final class Consent extends Plugin {
|
||||||
|
|
||||||
protected function __construct() {
|
protected function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@@ -72,4 +72,4 @@ final class Example extends Plugin {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Example::instance();
|
Consent::instance();
|
||||||
|
|||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
=== Example ===
|
=== Ogre Consent ===
|
||||||
Contributors: ogrecooper, cleverogre
|
Contributors: ogrecooper, cleverogre
|
||||||
Tested up to: 7.0
|
Tested up to: 7.0
|
||||||
Requires at least: 6.0
|
Requires at least: 6.0
|
||||||
@@ -10,7 +10,7 @@ Copyright: CleverOgre
|
|||||||
Donate link: https://cleverogre.com/
|
Donate link: https://cleverogre.com/
|
||||||
Tags: wordpress, plugin
|
Tags: wordpress, plugin
|
||||||
|
|
||||||
Example plugin
|
Ogre Consent plugin
|
||||||
|
|
||||||
== Installation ==
|
== Installation ==
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user