我想更改未登录用户的下载按钮。我想显示一个带有登录/注册消息的自定义HTML代码,而不是下载按钮。下面的代码隐藏了按钮,但新HTML代码的注入不起作用。
<?php if (!is_user_logged_in()) : ?>
<style>
.product-purchase-box{
display: none;
}
</style>
<script>
<p><a href="https://ezcliparts.com/login">LOGIN</a> OR <a href="https://ezcliparts.com/register">REGISTER</a> FOR FREE TO ACCESS THIS AND ALL 1 MILLION+ DESIGNS</p>
</script>
<?php endif; ?>
目标页面:ezcliparts。com/下载/无缝几何数字纸样抽象手绘背景
原始下载按钮输出:
<div class="cart-box row product-purchase-box" style="user-select: auto;">
<div class="col-md-12 paading-left-0 product-price" style="user-select: auto;">
<h3 style="user-select: auto;"><span class="edd_price" id="edd_price_4701" style="user-select: auto;">$0.00</span></h3> </div>
<div class="product_widget_inside" style="user-select: auto;"> <a href="#" class="edd-free-downloads-direct-download-link button white edd-submit" data-download-id="4701" style="user-select: auto;">Download</a> </div>
</div>
我在开发人员的帮助下创建了这个网站,但合同已经结束,所以我现在必须自己做。
最合适的回答,由SO网友:ScottM 整理而成
使用您所采用的方法处理此问题的一种方法是扩展PHP代码以检查用户是否像这样登录:
<?php if (!is_user_logged_in()) : ?>
<style>
.product-purchase-box{display: none;}
.linktologin{display: inline;}
</style>
<?php else : ?>
<style>
.product-purchase-box{display: inline;}
.linktologin{display: none;}
</style>
<?php endif; ?>
然后,删除
<script>
标记并将其添加到类的按钮HTML所在的位置
.linktologin
(或您选择的任何内容)。类似这样:
<div class="cart-box row product-purchase-box" style="user-select: auto;">
<div class="col-md-12 paading-left-0 product-price" style="user-select: auto;">
<h3 style="user-select: auto;"><span class="edd_price" id="edd_price_4701" style="user-select: auto;">$0.00</span></h3>
</div>
<div class="product_widget_inside" style="user-select: auto;"> <a href="#" class="edd-free-downloads-direct-download-link button white edd-submit" data-download-id="4701" style="user-select: auto;">Download</a></div>
</div>
<div class="linktologin">
<a href="https://ezcliparts.com/login">LOGIN</a> OR <a href="https://ezcliparts.com/register">REGISTER</a> FOR FREE TO ACCESS THIS AND ALL 1 MILLION+ DESIGNS
</div>