1

我在一个网站上使用联系表格 7 插件,该插件在每个页面的页脚都有一个联系表格,在专用联系页面的主要区域也有一个联系表格。

我知道如何在 CF7 中自定义 ajax 加载器 gif ......

function my_wpcf7_ajax_loader () { return get_stylesheet_directory_uri() . '/images/my-loader-image.gif'; } add_filter('wpcf7_ajax_loader', 'my_wpcf7_ajax_loader');

...但我的问题是我需要指定两个不同的加载器图像 - 一个用于页脚表单,一个用于联系页面表单。(这样做的原因是因为一个表单在白色背景上,另一个在红色背景上,尽管尝试了不同的加载器 gif ,但我认为不可能有一个在两者上看起来都不错的加载器 gif。)

4

4 回答 4

2

这是解决方案:https ://gist.github.com/tctc91/8271205

add_filter('wpcf7_ajax_loader', 'my_wpcf7_ajax_loader');

function my_wpcf7_ajax_loader () {
    return  network_home_url() . '/assets/themes/ips-helpdesk/images/ajax-loader.gif';
}
于 2016-10-02T17:42:28.477 回答
0

由于加载图像是img具有属性的元素src,因此 css 方法将无济于事。
需要通过 JavaScript 更改标签src的属性,img并且无需修改 contact 7 表单插件的核心 js(以便将来允许插件升级),我提供了以下 JavaScript 解决方案以通过蛮力方法应用此更改。

(function($) {
    setInterval(function() {
        if(typeof $.fn.wpcf7InitForm != "undefined") {
            //Contact Form 7 is loaded and initialized
            $loaderImage = $("#wpcf7-f52-o2 img.ajax-loader"); // modify your selector accordingly
            if(!$loaderImage.data("pathChanged")) {
                $loaderImage.attr("src", "ALTERNATIVE_IMAGE_PATH");
                $loaderImage.data("pathChanged", true);
            }
        }
    }, 2000);
})(jQuery);

虽然这可能不是最好的方法,但看看它是否有帮助。

于 2015-04-10T05:44:05.573 回答
0

我读了一篇文章,为您的问题提供了可靠的解决方案。他们给出了这个解决方案:

    // Change the URL to the ajax-loader image
function change_wpcf7_ajax_loader($content) {
    if ( is_page('contact') ) {
        $string = $content;
        $pattern = '/(<img class="ajax-loader" style="visibility: hidden;" alt="ajax loader" src=")(.*)(" \/>)/i';
        $replacement = "$1".get_template_directory_uri()."/images/ajax-loader.gif$3";
        $content =  preg_replace($pattern, $replacement, $string);
    }
    return $content;
}
add_filter( 'the_content', 'change_wpcf7_ajax_loader', 100 );

链接到这里的文章:

于 2015-10-06T17:15:41.273 回答
0

注意:我们使用的是经过大量修改的 220 主题,但这些解决方案都没有奏效。都试过了。更新到最新版本的插件,还是一样的问题。不能一次禁用一个插件并通过实际手段进行测试,因为有几十个,因为我们需要我们拥有的那些。

于 2022-01-31T19:50:32.353 回答