WordPress : Valeur du champ de personnalisation dans la variable functions.php
Est-il possible de passer la valeur d’un champ de personnalisation dans une variable functions.php ?
Je souhaite fournir une option de langue pour les onglets WooCommerce personnalisés. Actuellement, les en-têtes des onglets sont codés en dur dans functions.php. Après avoir supprimé les onglets par défaut, j’ajoute ce qui suit :
add_filter( 'woocommerce_product_tabs', 'downloads_tab' );
if ( ! function_exists ( 'downloads_tab' ) ) {
function downloads_tab( $tabs ) {
// ensure ACF is available
if ( !function_exists( 'have_rows' ) )
return;
if ( get_field('downloads') ) {
$tabs['downloads_tab'] = array(
'title' => __( 'Downloads', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_downloads_tab_content'
);
}
return $tabs;
}
}
Dans customizer.php (le thème est basé sur UnderStrap) j’ai :
// Product Downloads Tab Setting
$wp_customize->add_setting( 'product-downloads-tab', array( 'default' => '' ) );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'product-downloads-tab', array( 'label' => __( 'Product "Downloads" tab text', 'theme-name' ), 'section' => 'language-options', 'settings' => 'product-downloads-tab', ) ) );
Puis-je utiliser la valeur de tout ce qui est entré ici au lieu de coder en dur le titre de l’onglet dans functions.php ?
Ma solution consiste à remplacer la fonction dans functions.php du thème enfant, mais je préfère donner au client la possibilité de définir le titre de l’onglet.
Solution n°1 trouvée
Bien sûr, chaque paramètre de l’outil de personnalisation est enregistré en tant que module de thème (par défaut) ou en tant qu’option (si vous définissez le « type » sur « option » dans $wp_customize->add_setting()
).
Vous pouvez accéder à la valeur définie par l’utilisateur à l’aide de get_theme_mod()
(ou get_option()
).
Dans votre exemple, la valeur que vous recherchez peut être récupérée avec :
$downloads_tab_text = get_theme_mod( 'product-downloads-tab' );
0 commentaire