Php WooCommerce:允许在“添加费用功能”标签中使用HTML标记
我正在使用以下代码根据付款方式添加自定义费用:Php WooCommerce:允许在“添加费用功能”标签中使用HTML标记,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在使用以下代码根据付款方式添加自定义费用: 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_su
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' );
我想使用HTML在标签旁边显示一个图标,如下所示:
$label = 'PayPal Fee <span>HTML</span>';
但是,字符串将被esc_html转义为html标记。如何使用HTML标记来显示我的图标?在WP esc_HTML函数中有一个名为esc_HTML的过滤器挂钩,您可以使用它。您可以将图标HTML附加到标签上。检查下面的代码。代码将放入活动的theme functions.php文件中
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 );
另一种选择是将模板从woocommerce/templates目录复制到您的主题或子主题: checkout/review-order.php cart/cart-totals.php 在这些文件中,我们将找到esc_html函数所在的代码,并根据需要进行编辑: 为了获得更好的性能,is|cart | | is| checkout应该包装add_filter函数。因此,如果是购物车| | | | | | | | | | | |是|结帐{添加|过滤器'esc|html',在| paypal |费用标签|旁边显示|图标|,10,2;}如果$text='paypal{$safe |}