Astra_Update_Site_Title_Logo::execute( array $args )
Execute the ability.
Description
Parameters
- $args
-
(array) (Required) Input arguments.
Return
(array) Result array.
Source
File: inc/abilities/customizer/siteidentity/class-astra-update-site-title-logo.php
public function execute( $args ) {
$updated = array();
if ( isset( $args['site_title'] ) ) {
update_option( 'blogname', sanitize_text_field( $args['site_title'] ) );
$updated[] = 'site_title';
}
if ( isset( $args['tagline'] ) ) {
update_option( 'blogdescription', sanitize_text_field( $args['tagline'] ) );
$updated[] = 'tagline';
}
if ( isset( $args['logo_id'] ) ) {
$logo_id = absint( $args['logo_id'] );
if ( $logo_id > 0 ) {
set_theme_mod( 'custom_logo', $logo_id );
$updated[] = 'logo';
}
} elseif ( isset( $args['logo_url'] ) ) {
$logo_url = esc_url_raw( $args['logo_url'] );
if ( ! empty( $logo_url ) ) {
$attachment_id = attachment_url_to_postid( $logo_url );
if ( $attachment_id ) {
set_theme_mod( 'custom_logo', $attachment_id );
$updated[] = 'logo';
}
}
}
if ( isset( $args['retina_logo_url'] ) ) {
astra_update_option( 'ast-header-retina-logo', esc_url_raw( $args['retina_logo_url'] ) );
$updated[] = 'retina_logo';
}
if ( isset( $args['mobile_logo_url'] ) ) {
astra_update_option( 'mobile-header-logo', esc_url_raw( $args['mobile_logo_url'] ) );
$updated[] = 'mobile_logo';
}
if ( isset( $args['logo_width'] ) && is_array( $args['logo_width'] ) ) {
$logo_width = Astra_Abilities_Helper::sanitize_responsive_typo( $args['logo_width'] );
astra_update_option( 'ast-header-responsive-logo-width', $logo_width );
$updated[] = 'logo_width';
}
if ( isset( $args['display_site_title'] ) && is_array( $args['display_site_title'] ) ) {
$visibility = array();
foreach ( array( 'desktop', 'tablet', 'mobile' ) as $device ) {
if ( isset( $args['display_site_title'][ $device ] ) && $args['display_site_title'][ $device ] ) {
$visibility[] = $device;
}
}
astra_update_option( 'display-site-title-responsive', $visibility );
$updated[] = 'site_title_visibility';
}
if ( isset( $args['display_tagline'] ) && is_array( $args['display_tagline'] ) ) {
$visibility = array();
foreach ( array( 'desktop', 'tablet', 'mobile' ) as $device ) {
if ( isset( $args['display_tagline'][ $device ] ) && $args['display_tagline'][ $device ] ) {
$visibility[] = $device;
}
}
astra_update_option( 'display-site-tagline-responsive', $visibility );
$updated[] = 'tagline_visibility';
}
if ( isset( $args['logo_title_inline'] ) ) {
astra_update_option( 'logo-title-inline', (bool) $args['logo_title_inline'] );
$updated[] = 'logo_title_inline';
}
if ( isset( $args['different_retina_logo'] ) ) {
astra_update_option( 'different-retina-logo', (bool) $args['different_retina_logo'] );
$updated[] = 'different_retina_logo';
}
if ( isset( $args['different_mobile_logo'] ) ) {
astra_update_option( 'different-mobile-logo', (bool) $args['different_mobile_logo'] );
$updated[] = 'different_mobile_logo';
}
if ( empty( $updated ) ) {
return Astra_Abilities_Response::error(
__( 'No valid parameters provided to update.', 'astra' )
);
}
return Astra_Abilities_Response::success(
/* translators: %s: comma-separated list of updated fields */
sprintf( __( 'Site title and logo updated successfully: %s', 'astra' ), implode( ', ', $updated ) ),
array(
'updated' => $updated,
'site_title' => get_option( 'blogname' ),
'tagline' => get_option( 'blogdescription' ),
'logo_id' => get_theme_mod( 'custom_logo' ),
'retina_logo' => astra_get_option( 'ast-header-retina-logo' ),
'mobile_logo' => astra_get_option( 'mobile-header-logo' ),
'logo_width' => astra_get_option( 'ast-header-responsive-logo-width' ),
'display_site_title' => astra_get_option( 'display-site-title-responsive' ),
'display_tagline' => astra_get_option( 'display-site-tagline-responsive' ),
'logo_title_inline' => astra_get_option( 'logo-title-inline' ),
'different_retina_logo' => astra_get_option( 'different-retina-logo' ),
'different_mobile_logo' => astra_get_option( 'different-mobile-logo' ),
)
);
}
Expand full source code Collapse full source code View on Trac