diff --git a/admin/settings/general.page.php b/admin/settings/general.page.php
index 4feb3c86..b0ac93aa 100644
--- a/admin/settings/general.page.php
+++ b/admin/settings/general.page.php
@@ -632,7 +632,7 @@
-
+
|
/>
diff --git a/includes/ZeroBSCRM.AdminStyling.php b/includes/ZeroBSCRM.AdminStyling.php
index 145ac0d6..3c2b1b4c 100644
--- a/includes/ZeroBSCRM.AdminStyling.php
+++ b/includes/ZeroBSCRM.AdminStyling.php
@@ -182,7 +182,7 @@ function zeroBSCRM_improvedPostMsgsTransactions( $messages ) {
WordPress Footer Msg
====================================================== */
-// } Footer Text
+// } Footer Text (left) - Jetpack logo + wordmark, matching the unified Jetpack admin footer
function jpcrm_footer_credit_thanks( $content ) {
// return original text if not on a CRM page
@@ -194,7 +194,8 @@ function jpcrm_footer_credit_thanks( $content ) {
global $zbs;
$showpoweredby_admin = $zbs->settings->get( 'showpoweredby_admin' ) === 1 ? true : false;
if ( $showpoweredby_admin ) {
- return '';
+ $jetpack_logo = '';
+ return '';
}
##/WLREMOVE
@@ -203,6 +204,7 @@ function jpcrm_footer_credit_thanks( $content ) {
}
add_filter( 'admin_footer_text', 'jpcrm_footer_credit_thanks' );
+// } Footer Text (right) - Automattic "by line" logo, matching the unified Jetpack admin footer
function jpcrm_footer_credit_version( $content ) {
// return original text if not on a CRM page
@@ -214,7 +216,9 @@ function jpcrm_footer_credit_version( $content ) {
global $zbs;
$showpoweredby_admin = $zbs->settings->get( 'showpoweredby_admin' ) === 1 ? true : false;
if ( $showpoweredby_admin ) {
- return sprintf( 'Jetpack CRM v%s', $zbs::VERSION );
+ $byline_title = esc_attr__( 'An Automattic Airline', 'zero-bs-crm' );
+ $byline_svg = '';
+ return '';
}
##/WLREMOVE
diff --git a/sass/emerald/_jpcrm_footer.scss b/sass/emerald/_jpcrm_footer.scss
new file mode 100644
index 00000000..ab1ebe8c
--- /dev/null
+++ b/sass/emerald/_jpcrm_footer.scss
@@ -0,0 +1,88 @@
+body.jpcrm-admin {
+
+ // Only restyle the footer when our branded footer content is present. When the
+ // "powered by" setting is off (or under white label) #wpfooter is left empty and
+ // keeps its default WordPress appearance.
+ #wpfooter:has( .jetpack-footer__logo ) {
+ align-items: center;
+ background-color: var(--wpds-color-bg-surface-neutral, var(--wpds-color-background-surface-neutral, #fcfcfc));
+ border-top: var(--wpds-border-width-xs, 1px) solid var(--wpds-color-stroke-surface-neutral-weak, #e4e4e4);
+ box-sizing: border-box;
+ display: flex;
+ flex-wrap: wrap;
+ font-size: var(--wpds-typography-font-size-md, 13px);
+ gap: var(--wpds-dimension-gap-xl, 24px);
+ padding: var(--wpds-dimension-padding-xl, 20px) var(--wpds-dimension-padding-2xl, 24px);
+
+ // Wide footer: single row, Automattic by line pushed to the far right.
+ #footer-upgrade {
+ margin-inline-start: auto;
+ }
+
+ // WordPress core outputs an empty inside #wpfooter;
+ // as a flex item it would add a trailing gap that pushes the by line off
+ // the right edge, so drop it out of the layout.
+ .clear {
+ display: none;
+ }
+ }
+
+ // Below 782px WordPress core hides #wpfooter (common.css), but the base rule
+ // above keeps it shown — specificity (1,2,1) vs core's (1,0,0), and no media
+ // query — which is why these mobile rules are reachable at all. Core's
+ // `.auto-fold #wpfooter` also leaves a 36px icon-menu margin here (admin-menu.css,
+ // @media max-width: 960px); drop it so the footer sits flush with the screen edge.
+ @media ( max-width: 782px ) {
+
+ #wpfooter:has( .jetpack-footer__logo ) {
+ margin: 0;
+ }
+ }
+
+ // Phones: stack the logo and the Automattic by line onto their own left-aligned
+ // rows, matching the unified Jetpack footer. Unlike that footer we have no
+ // middle nav links to force the wrap, so we stack explicitly.
+ @media ( max-width: 480px ) {
+
+ #wpfooter:has( .jetpack-footer__logo ) {
+
+ #footer-left,
+ #footer-upgrade {
+ flex-basis: 100%;
+ }
+
+ #footer-upgrade {
+ margin-inline-start: 0;
+ }
+ }
+ }
+
+ // Left: Jetpack logo + wordmark.
+ .jetpack-footer__logo {
+ align-items: center;
+ display: inline-flex;
+ gap: 8px;
+
+ svg {
+ display: block;
+ flex-shrink: 0;
+ }
+ }
+
+ .jetpack-footer__logo-text {
+ color: var(--wpds-color-fg-content-neutral, var(--wpds-color-foreground-content-neutral, #1e1e1e));
+ font-size: var(--wpds-typography-font-size-md, 13px);
+ line-height: 1;
+ }
+
+ // Right: Automattic "by line".
+ a.jetpack-footer__a8c {
+ align-items: center;
+ display: inline-flex;
+
+ svg {
+ display: block;
+ fill: var(--wpds-color-fg-interactive-neutral-weak, var(--wpds-color-foreground-interactive-neutral-weak, #707070));
+ }
+ }
+}
diff --git a/sass/jpcrm-emerald.scss b/sass/jpcrm-emerald.scss
index 76201988..e4fc3b0b 100644
--- a/sass/jpcrm-emerald.scss
+++ b/sass/jpcrm-emerald.scss
@@ -8,6 +8,9 @@
/* top menu */
@use "emerald/jpcrm_top_menu";
+/* footer */
+@use "emerald/jpcrm_footer";
+
/* components */
@use "emerald/buttons";
@use "emerald/dashcard";
|