feat: initial ACRIB WordPress deployment
- WordPress 6.9.4 (es_ES) with Kadence theme - Homepage: Hero, La Asociación, Pilares, Beneficios, Eventos, Miembros, Hazte Miembro, Contacto - Brand identity: #13294b navy, #a12932 burgundy, #c69c48 gold - Fonts: Raleway (headings) + Source Sans 3 (body) + Lato (UI) - Plugins: Kadence Blocks, Polylang, Contact Form 7 - Custom CSS with full brand styling and responsive layout - HTTPS enforced via wp-config.php proxy detection
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php declare( strict_types=1 );
|
||||
|
||||
namespace KadenceWP\KadenceBlocks\Harbor\Actions;
|
||||
|
||||
/**
|
||||
* Provides the list of Kadence plugins that integrate with Harbor.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*/
|
||||
final class Get_Known_Plugins {
|
||||
|
||||
/**
|
||||
* Returns a map of all known Kadence plugin slugs to their metadata.
|
||||
*
|
||||
* page_url should be a full URL and should point to the plugin's
|
||||
* license settings page.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @return array<string, array{name: string, page_url: string}>
|
||||
*/
|
||||
public function __invoke(): array {
|
||||
$default_page = admin_url( 'admin.php?page=kadence-blocks' );
|
||||
|
||||
return [
|
||||
'kadence-blocks' => [
|
||||
'name' => 'Kadence Blocks',
|
||||
'page_url' => $default_page,
|
||||
],
|
||||
'kadence-blocks-pro' => [
|
||||
'name' => 'Kadence Blocks Pro',
|
||||
'page_url' => $default_page,
|
||||
],
|
||||
'kadence-creative-kit' => [
|
||||
'name' => 'Kadence Creative Kit',
|
||||
'page_url' => admin_url( 'admin.php?page=kadence-blocks-home&license=show' ),
|
||||
],
|
||||
'kadence-insights' => [
|
||||
'name' => 'Kadence Insights',
|
||||
'page_url' => admin_url( 'admin.php?page=kadence-insights-settings&license=show' ),
|
||||
],
|
||||
'kadence-shop-kit' => [
|
||||
'name' => 'Kadence Shop Kit',
|
||||
'page_url' => admin_url( 'admin.php?page=kadence-shop-kit-settings&license=show' ),
|
||||
],
|
||||
'kadence-galleries' => [
|
||||
'name' => 'Kadence Galleries',
|
||||
'page_url' => admin_url('edit.php?post_type=kt_gallery&page=kadence-galleries-settings'),
|
||||
],
|
||||
'kadence-conversions' => [
|
||||
'name' => 'Kadence Conversions',
|
||||
'page_url' => admin_url('admin.php?page=kadence-conversion-settings'),
|
||||
],
|
||||
'kadence-captcha' => [
|
||||
'name' => 'Kadence Captcha',
|
||||
'page_url' => admin_url( 'admin.php?page=kadence-recaptcha-settings&license=show' ),
|
||||
],
|
||||
'kadence-pattern-hub' => [
|
||||
'name' => 'Kadence Pattern Hub',
|
||||
'page_url' => admin_url('edit.php?post_type=kadence_cloud&page=kadence-cloud-settings&license=show'),
|
||||
],
|
||||
'kadence-white-label' => [
|
||||
'name' => 'Kadence White Label',
|
||||
'page_url' => admin_url( 'admin.php?page=kadence-white-label-settings' ),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php declare( strict_types=1 );
|
||||
|
||||
namespace KadenceWP\KadenceBlocks\Harbor\Actions;
|
||||
|
||||
/**
|
||||
* Renders the Harbor (Liquid Web Software Manager) notice on legacy Uplink license forms.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*/
|
||||
final class Render_Harbor_License_Notice {
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $product_name;
|
||||
|
||||
/**
|
||||
* @param string $product_name
|
||||
*/
|
||||
public function __construct( string $product_name ) {
|
||||
$this->product_name = $product_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders a Harbor notice below the save button on a Kadence Uplink license field.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __invoke(): void {
|
||||
$url = lw_harbor_get_license_page_url();
|
||||
if ( empty( $url ) ) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<hr style="margin: 20px 0;"/>
|
||||
<h4><span class="dashicons dashicons-info" style="vertical-align: middle; margin-right: 4px;"></span><?php esc_html_e( 'Liquid Web Software Manager', 'kadence-blocks' ); ?></h4>
|
||||
<p class="tooltip description"><?php echo wp_kses(
|
||||
sprintf(
|
||||
/* translators: 1: product name, 2: URL to the Liquid Web Software Manager page. */
|
||||
__( '%1$s is now part of Liquid Web\'s software offerings. This field is still available for managing legacy licenses from your previous %1$s account. If you purchased a new plan through Liquid Web, your products are managed through the <a href="%2$s">Liquid Web Software Manager</a>.', 'kadence-blocks' ),
|
||||
esc_html( $this->product_name ),
|
||||
esc_url( $url )
|
||||
),
|
||||
[ 'a' => [ 'href' => [] ] ]
|
||||
); ?></p>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php declare( strict_types=1 );
|
||||
|
||||
namespace KadenceWP\KadenceBlocks\Harbor\Actions;
|
||||
|
||||
use function KadenceWP\KadenceBlocks\StellarWP\Uplink\get_license_key;
|
||||
use function KadenceWP\KadenceBlocks\StellarWP\Uplink\get_resource;
|
||||
|
||||
/**
|
||||
* Reports Kadence's legacy Uplink licenses into Harbor's unified license listing.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*/
|
||||
final class Report_Legacy_Licenses {
|
||||
|
||||
/**
|
||||
* Reports legacy Uplink-managed Kadence licenses to Harbor so they appear
|
||||
* in the unified license UI.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @param array $licenses Existing legacy licenses from other plugins.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function __invoke( array $licenses ): array {
|
||||
$reported_keys = [];
|
||||
|
||||
foreach ( ( new Get_Known_Plugins() )() as $slug => $plugin ) {
|
||||
$key = get_license_key( $slug );
|
||||
|
||||
if ( empty( $key ) || isset( $reported_keys[ $key ] ) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$resource = get_resource( $slug );
|
||||
|
||||
if ( ! $resource ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$reported_keys[ $key ] = true;
|
||||
|
||||
$is_active = $resource->has_valid_license();
|
||||
|
||||
$licenses[] = [
|
||||
'key' => $key,
|
||||
'slug' => $slug,
|
||||
'name' => $plugin['name'],
|
||||
'product' => 'kadence',
|
||||
'is_active' => $is_active,
|
||||
'page_url' => esc_url( $plugin['page_url'] ),
|
||||
];
|
||||
}
|
||||
|
||||
return $licenses;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php declare( strict_types=1 );
|
||||
|
||||
namespace KadenceWP\KadenceBlocks\Harbor\Actions;
|
||||
|
||||
/**
|
||||
* Suppresses legacy Kadence add-on "license not activated" admin notices in favor of Harbor's unified UI.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*/
|
||||
final class Suppress_Legacy_Inactive_Notices {
|
||||
|
||||
/**
|
||||
* Removes legacy "not activated" admin notices from all Kadence add-ons.
|
||||
*
|
||||
* Each add-on registers its inactive_notice callback during plugins_loaded,
|
||||
* which runs after Harbor_Provider::register(). Hooking to admin_init ensures
|
||||
* all add-on callbacks are already registered before we remove them.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __invoke(): void {
|
||||
global $wp_filter;
|
||||
|
||||
if ( empty( $wp_filter['admin_notices'] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ( $wp_filter['admin_notices']->callbacks as $priority => $callbacks ) {
|
||||
foreach ( $callbacks as $key => $callback ) {
|
||||
$function = $callback['function'];
|
||||
|
||||
if ( ! is_array( $function )
|
||||
|| ! is_object( $function[0] )
|
||||
|| $function[1] !== 'inactive_notice'
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( strpos( get_class( $function[0] ), 'KadenceWP\\' ) === 0 ) {
|
||||
unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $key ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user