在Woocommerce付款方式标题上添加图片

时间:2017-10-19 06:06:06

标签: php wordpress woocommerce payment-gateway checkout

在Woocommerce中,我计划在银行名称插件BACS之前添加图像。现在我已经输入了银行名称和其他设置,并且已经尝试在银行名称之前输入HTML,但它不起作用。

1 个答案:

答案 0 :(得分:2)

您可以在结帐页面轻松地将图标(图像)添加到付款网关。

  

但在Woocommerce中,此图标位于之后标题。   要在标题之前更改,您需要在27 中修改相关模板checkout/payment-method.php

      <?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?>
     

到此:

      <?php echo $gateway->get_icon(); ?> <?php echo $gateway->get_title(); ?>
     

并保存...请参阅:How to Override WooCommerce Templates via a Theme ...

您需要将图片上传到主题中的文件夹中作为&#34; assets&#34;例如。

对于每个网关,您可以使用此 woocommerce_gateway_icon 操作挂钩中的自定义函数启用自定义图像,或返回默认图像:

add_filter( 'woocommerce_gateway_icon', 'custom_payment_gateway_icons', 10, 2 );
function custom_payment_gateway_icons( $icon, $gateway_id ){

    foreach( WC()->payment_gateways->get_available_payment_gateways() as $gateway )
        if( $gateway->id == $gateway_id ){
            $title = $gateway->get_title();
            break;
        }

    // The path (subfolder name(s) in the active theme)
    $path = get_stylesheet_directory_uri(). '/assets';

    // Setting (or not) a custom icon to the payment IDs
    if($gateway_id == 'bacs')
        $icon = '<img src="' . WC_HTTPS::force_https_url( "$path/bacs.png" ) . '" alt="' . esc_attr( $title ) . '" />';
    elseif( $gateway_id == 'cheque' )
        $icon = '<img src="' . WC_HTTPS::force_https_url( "$path/cheque.png" ) . '" alt="' . esc_attr( $title ) . '" />';
    elseif( $gateway_id == 'cod' )
        $icon = '<img src="' . WC_HTTPS::force_https_url( "$path/cod.png" ) . '" alt="' . esc_attr( $title ) . '" />';
    elseif( $gateway_id == 'ppec_paypal' || 'paypal' )
        return $icon;

    return $icon;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

在WooCommerce 3上测试并正常工作。

  

如何获取网关ID
  继续WC设置&gt; Checkout(页面末尾)列在Gateway ID列

enter image description here