If the customizer has been bootstrapped (that is, if the customize_register
action has fired), then you can look at the control itself (assuming you flip your choices
array, as I think your values should be the keys and vice-versa):
$price = $wp_customize->get_setting( 'price1' )->value();
$control = $wp_customize->get_control( 'price1' );
$price_text = $control->choices[ $price ];
However, you probably want to obtain the chosen price’s text outside even when the customizer isn’t bootstrapped. In that case, you should store the choices array separately and then pass it in as the choices
param but then also reuse it elsewhere. For example:
$wpse_250302_default_price_choice="95";
$wpse_250302_price_choices = array(
'95' => 'regular price',
'65' => 'special price',
'35' => 'other price',
);
add_action( 'customize_register', function( WP_Customize_Manager $wp_customize ) {
global $wpse_250302_default_price_choice, $wpse_250302_price_choices;
$wp_customize->add_setting( 'price1', array(
'default' => $wpse_250302_default_price_choice,
) );
$wp_customize->add_control( 'price1', array(
'label' => 'price 1',
'settings' => 'price1',
'section' => 'pricessection',
'type' => 'select',
'choices' => $wpse_250302_price_choices,
) );
} );
add_action( 'wpse_250302_some_theme_action', function() {
global $wpse_250302_default_price_choice, $wpse_250302_price_choices;
$price_value = get_theme_mod( 'price1', $wpse_250302_default_price_choice );
$price_text = $wpse_250302_price_choices[ $price_value ];
printf( "<h4>%s: %s</h4>", esc_html( $price_text ), esc_html( $price_value ) );
} );