WooCommerce 更改加载微调器图标
Posted
技术标签:
【中文标题】WooCommerce 更改加载微调器图标【英文标题】:WooCommerce change loading spinner icon 【发布时间】:2019-04-24 11:32:26 【问题描述】:IM 试图更改 WooCommerce 加载微调器图标。它在 woocommerce.css 中定义:
.woocommerce .blockUI.blockOverlay::before
height: 1em;
width: 1em;
display: block;
position: absolute;
top: 50%;
left: 50%;
margin-left: -.5em;
margin-top: -.5em;
content: '';
-webkit-animation: spin 1s ease-in-out infinite;
animation: spin 1s ease-in-out infinite;
background: url(../images/icons/loader.svg) center center;
background-size: cover;
line-height: 1;
text-align: center;
font-size: 2em;
color: rgba(0,0,0,.75);
我尝试使用自定义 css 更改 loader.svg:
.woocommerce .blockUI.blockOverlay::before
background: url(http://www.localhost.de/wp-content/uploads/custom-loader.svg) center center !important;
但图标不会改变。所以我用谷歌搜索了一下,在这里找到了这个:
add_filter( 'woocommerce_ajax_loader_url', 'custom_loader_icon', 10, 1 );
function custom_loader_icon()
return __( get_home_path() . 'wp-content/uploads/custom-loader.svg', 'woocommerce' );
但加载微调器图标仍然相同。我能做些什么来改变它?我不知道我现在应该尝试什么...
【问题讨论】:
【参考方案1】:以下代码 css 规则适用于 Woocommerce 最新版本。我已将它们嵌入到 wp_head
挂钩中,因为它易于测试:
您将使用this icon 进行测试,将您的活动子主题放在“img
”目录下,重命名文件my_spinner.gif
。
如果您使用主题而不是子主题,您将在代码中使用get_template_directory_uri()
函数而不是get_stylesheet_directory_uri()
。
代码:
add_action('wp_head', 'custom_ajax_spinner', 1000 );
function custom_ajax_spinner()
?>
<style>
.woocommerce .blockUI.blockOverlay:before,
.woocommerce .loader:before
height: 3em;
width: 3em;
position: absolute;
top: 50%;
left: 50%;
margin-left: -.5em;
margin-top: -.5em;
display: block;
content: "";
-webkit-animation: none;
-moz-animation: none;
animation: none;
background-image:url('<?php echo get_stylesheet_directory_uri() . "/img/my_spinner.gif"; ?>') !important;
background-position: center center;
background-size: cover;
line-height: 1;
text-align: center;
font-size: 2em;
</style>
<?php
代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。
【讨论】:
像魅力一样工作,给别人一个小费。一些结帐表格可能有点长,您不会看到微调器。将位置更新为“固定”,使其始终可见。 它运行良好。从我这边投票。【参考方案2】:我认为只有 CSS 就足够了
.woocommerce .blockUI.blockOverlay:before,
.woocommerce .loader:before
background-image:url('path/to/your/image.gif');
它会正常工作
【讨论】:
【参考方案3】:试试下面的代码。假设您的 custom-loader.svg
位于“上传”目录的根目录。
add_filter( 'woocommerce_ajax_loader_url', 'custom_loader_icon', 10, 1 );
function custom_loader_icon($str_replace)
$upload_dir = wp_upload_dir();
$str_replace = $upload_dir['baseurl'].'/wp-content/uploads/custom-loader.svg'
return $str_replace;
希望这行得通。
【讨论】:
不工作对不起。就像我做的一样,但我只是直接返回了 URL以上是关于WooCommerce 更改加载微调器图标的主要内容,如果未能解决你的问题,请参考以下文章
在 Woocommerce 中启动和停止 Ajax Overlay 微调器