Правильное переопределение функции WooCommerce WC_Price() чистым способомPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Правильное переопределение функции WooCommerce WC_Price() чистым способом

Сообщение Anonymous »

Как лучше всего правильно переопределить уже существующую функцию WooCommerce? В этом случае я хочу изменить функцию wc_price(). Мне не нужно делать с этим ничего сумасшедшего, мне буквально нужно просто добавить атрибут HTML вокруг цены.

Я знаю, код следующий:

Код: Выделить всё

function wc_price( $price, $args = array() ) {
extract( apply_filters( 'wc_price_args', wp_parse_args( $args, array(
'ex_tax_label'       => false,
'currency'           => '',
'decimal_separator'  => wc_get_price_decimal_separator(),
'thousand_separator' => wc_get_price_thousand_separator(),
'decimals'           => wc_get_price_decimals(),
'price_format'       => get_woocommerce_price_format(),
) ) ) );

$negative        = $price < 0;
$price           = apply_filters( 'raw_woocommerce_price', floatval( $negative ? $price * -1 : $price ) );
$price           = apply_filters( 'formatted_woocommerce_price', number_format( $price, $decimals, $decimal_separator, $thousand_separator ), $price, $decimals, $decimal_separator, $thousand_separator );

if ( apply_filters( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
$price = wc_trim_zeros( $price );
}

$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '' . get_woocommerce_currency_symbol( $currency ) . '', $price );
$return          = '' . $formatted_price . '';

if ( $ex_tax_label && wc_tax_enabled() ) {
$return .= ' ' . WC()->countries->ex_tax_or_vat() . '';
}

return apply_filters( 'wc_price', $return, $price, $args );
}
Все, что я хочу сделать, это изменить его на:

Код: Выделить всё

function wc_price( $price, $args = array() ) {
extract( apply_filters( 'wc_price_args', wp_parse_args( $args, array(
'ex_tax_label'       => false,
'currency'           => '',
'decimal_separator'  => wc_get_price_decimal_separator(),
'thousand_separator' => wc_get_price_thousand_separator(),
'decimals'           => wc_get_price_decimals(),
'price_format'       => get_woocommerce_price_format(),
) ) ) );

$negative        = $price < 0;
$price           = apply_filters( 'raw_woocommerce_price', floatval( $negative ? $price * -1 : $price ) );
$price           = apply_filters( 'formatted_woocommerce_price', number_format( $price, $decimals, $decimal_separator, $thousand_separator ), $price, $decimals, $decimal_separator, $thousand_separator );

if ( apply_filters( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
$price = wc_trim_zeros( $price );
}

$formatted_price = ( $negative ? '-' : '' ) . sprintf( $price_format, '' . get_woocommerce_currency_symbol( $currency ) . '',  . $price .  );
$return          = '' . $formatted_price . '';

if ( $ex_tax_label && wc_tax_enabled() ) {
$return .= ' ' . WC()->countries->ex_tax_or_vat() . '';
}

return apply_filters( 'wc_price', $return, $price, $args );
}
Будем очень благодарны за любую помощь! Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/451 ... -clean-way
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»