代码之家  ›  专栏  ›  技术社区  ›  Reece

使用过滤器向WooCommerce商店通知添加html

  •  0
  • Reece  · 技术社区  · 6 年前

    我试图添加一个div包装周围我的WooCommerce商店通知使用过滤器。我还想用一个关闭图标替换dismise链接。

    这是我到目前为止,它并没有真正工作,我希望它;

    add_filter('woocommerce_demo_store', 'demo_store_filter');
    
    function demo_store_filter($text){
        return str_replace( '<p class="woocommerce-store-notice demo_store">', '<div class="hello"><p class="woocommerce-store-notice demo_store"></p></div>', $text);
    }
    

    这里是通知的默认html;

    <p class="woocommerce-store-notice demo_store">Enter the code <strong>'TLFS5V'</strong> to received £10 off your order when you spend over £100 <a href="#" class="woocommerce-store-notice__dismiss-link">Dismiss</a></p>
    

    这就是我想要的;

    <div class="container-fluid"><div class="container"><p class="woocommerce-store-notice demo_store">Enter the code <strong>'TLFS5V'</strong> to received £10 off your order when you spend over £100 <a href="#" class="woocommerce-store-notice__dismiss-link">(close svg icon here)</a></p></div></div>
    

    这是否可能与过滤器?或者我应该通过创建一个新函数来实现这一点?

    1 回复  |  直到 6 年前
        1
  •  3
  •   kashalo    6 年前

    你可以这样做:

    add_filter('woocommerce_demo_store', 'demo_store_filter', 10, 1);
    
    function demo_store_filter($text)
    {
    
        $text = str_replace(array('<p class="woocommerce-store-notice demo_store">', '</p>', 'Dismiss'), array('<div class="hello"><p class="woocommerce-store-notice demo_store">', '</p></div>', '(close svg icon here)'), $text);
    
        return $text;
    }
    

    <div class="hello"><p class="woocommerce-store-notice demo_store">as <a href="#" class="woocommerce-store-notice__dismiss-link">(close svg icon here)</a></p></div>
    

    测试和工作。