Не могли бы вы помочь мне, как я могу настроить вывод приведенного ниже кода, который был добавлен в wordpress / woocommerce?

В настоящее время он показывает продажную цену и обычную цену, и я хотел бы добавить некоторые настройки для каждого из них, например: раскраска (продажная цена = красный); текст-украшение (цена продажи = сквозная) ..

function sr_change_variable_price($price, $product) {
    if ( $product->is_type( 'variable' ) && !is_product() ) 
    {
     return $product->get_variation_regular_price( 'min' ).' '.$product->get_variation_sale_price( 'min' ).' Ft'; // if variable product and non-product page
    } else if ( $product->is_type( 'variable' ) && is_product() )
    {
        return '';  // if variable product and product page
    } else
    {
        return $price;  // other cases
    }
}
add_filter( 'woocommerce_get_price_html', 'sr_change_variable_price', 10, 2 );

Заранее большое спасибо за любую помощь,

0
Ferenc Bajáki 27 Сен 2020 в 03:17

1 ответ

Лучший ответ

В вашей функции вы объединяете две строки в первом условии, во втором условии вернули пустую строку, а в инструкции else вернули эту собственную цену без изменений. так как ваш возвращаемый тип - строка, нет проблем с объединением ваших цен с другими строками, такими как теги html. если этот процесс не создает проблем для других процессов вашего wordpress, вы можете использовать теги html, объединив их в своих возвратах:

function sr_change_variable_price($price, $product){
    $html_tag = '<span style={some styles}>%s</span>';
    if($product->is_type('variable') AND !is_product()){
        $min = $product->get_variation_regular_price('min') . ' ' . $product->get_variation_sale_price('min');
        $min = $min ' Ft';
        return(sprintf($html_tag, $min));
    }elseif($product->is_type('variable') AND is_product()){
        return('');
    }else{
        return(sprintf($html_tag, $price));
    }
}
add_filter('woocommerce_get_price_html', 'sr_change_variable_price', 10, 2);
2
AmirAli Esteki 27 Сен 2020 в 00:46