John Smith
Ich verwende den folgenden Code, um eine benutzerdefinierte Gebühr basierend auf der Zahlungsmethode hinzuzufügen:
function stackoverflow_apply_payment_gateway_fee() {
$payment_method = WC()->session->get( 'chosen_payment_method' );
if( $payment_method == 'paypal' ) {
$label="PayPal Fee <span>HTML</span>";
$cart_subtotal_fee = WC()->cart->get_subtotal();
$amount = 5;
WC()->cart->add_fee( $label, $amount, true, 'standard' );
}
}
add_action( 'woocommerce_cart_calculate_fees', 'stackoverflow_apply_payment_gateway_fee' );
Ich möchte ein Symbol neben dem Label mit HTML anzeigen, etwa so:
$label="PayPal Fee <span>HTML</span>";
Allerdings wird die Zeichenfolge für HTML-Tags (esc_html) maskiert. Wie kann ich dafür sorgen, dass es mit HTML-Tags funktioniert, um mein Symbol anzuzeigen?
Es gibt einen Filter-Hook namens esc_html
in WP esc_html Funktion, die Sie verwenden können. Sie können Ihr Symbol-HTML an Ihr Etikett anhängen. Überprüfen Sie den folgenden Code. Code wird in Ihre aktive Design-functions.php-Datei eingefügt.
function stackoverflow_apply_payment_gateway_fee() {
$payment_method = WC()->session->get( 'chosen_payment_method' );
if( $payment_method == 'paypal' ) {
$label="PayPal Fee";
$cart_subtotal_fee = WC()->cart->get_subtotal();
$amount = 5;
WC()->cart->add_fee( $label, $amount, true, 'standard' );
}
}
add_action( 'woocommerce_cart_calculate_fees', 'stackoverflow_apply_payment_gateway_fee' );
function show_an_icon_next_to_the_paypal_fee_label( $safe_text, $text ){
if( ( is_cart() || is_checkout() ) && $text == 'PayPal Fee' ){
$safe_text = $safe_text.'<span>HTML</span>';
}
return $safe_text;
}
add_filter( 'esc_html', 'show_an_icon_next_to_the_paypal_fee_label', 10, 2 );
Eine andere Alternative wäre, die Vorlagen aus dem in dein Theme (oder Child-Theme) zu kopieren woocommerce/templates
Verzeichnis:
checkout/review-order.php
cart/cart-totals.php
In diesen Dateien finden Sie diesen Code, wo die esc_html
Funktion ist, und bearbeiten Sie sie nach Bedarf:
<?php foreach ( WC()->cart->get_fees() as $fee ) : ?>
<tr class="fee">
<th><?php echo esc_html( $fee->name ); ?></th>
<td data-title="<?php echo esc_attr( $fee->name ); /* Leave this one */?>"><?php wc_cart_totals_fee_html( $fee ); ?></td>
</tr>
<?php endforeach; ?>
100445 0 0 cookie-check WooCommerce: HTML-Tags im Label „add_fee function“ zulassen yes