WordPress : Valeur du champ de personnalisation dans la variable functions.php

Publié par Jean-Michel le

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' );
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *