<?php
class fppopupcontent {
function __construct() {
require_once('inc/init.php');
if(isset($_POST['reset'])) {
add_action('admin_init',array($this,'fppopupcontentreset'));
}
}
function fppopupcontentadmin() {
add_submenu_page('options-general.php','Fantastic Popup Content', 'Fantastic Popup Content', 'manage_options','fppopupcontentadmin', 'fppopupcontentadmin_menu');
}
function fppopupcontentupdate() {
register_setting('fppopup','fppopupcontent');
register_setting('fppopup','fppopuptitle');
register_setting('fppopup','fppopupdays');
}
function fppopupcontentregister() {
add_option('fppopupdays',0);
}
function fppopupcontentreset() {
delete_option('fppopuptitle');
delete_option('fppopupcontent');
delete_option('fppopupdays');
add_option('fppopupdays','0');
fppopupcontent::fppopupcontentmail();
}
function fppopupcontentprocess() {
$plugin_dir = plugin_dir_url(__FILE__);
wp_enqueue_script('jquery');
wp_register_style('fp_style', $plugin_dir . 'css/home.css');
wp_enqueue_style('fp_style');
wp_register_script('fpquery_cookie', $plugin_dir . 'js/cookies.js');
wp_enqueue_script('fpquery_cookie');
}
function fppopupcntnt() {
if(is_home()) {
?>
<div id="fppop">
<div id="fp-close"></div>
<div id="fppopcnt">
<div id="fpclose" style="position:fixed;margin-left:-7px;"></div>
<div style="margin-left:50px">
<h1 style="font-size:24px"><?php echo get_option('fppopuptitle');?></h1>
<hr />
<?php $options=get_option('fppopupcontent'); ?>
<?php echo $options['textarea'] ; ?>
</div>
</div>
</div>
<?php
}
}
function fppopupprcss() {
?>
<script type="text/javascript">
jQuery(document)
.ready(function($){
if($.cookie('popup_user_login')!='yes'){
$('#fppop')
.delay(100)
.fadeIn('medium');
$('#fpclose, #fp-close')
.click(function(){
$('#fppop')
.stop()
.fadeOut('medium')
})
}
$.cookie(
'popup_user_login',
'yes',
{
path:'/',
expires:<?php echo (get_option('fppopupdays')); ?>
}
)
});
</script>
<?php
}
}
add_filter('wp_footer',array('fppopupcontent','fppopupcntnt'));
add_filter('wp_head', array('fppopupcontent','fppopupprcss'));
add_action('wp_enqueue_scripts',array('fppopupcontent','fppopupcontentprocess'));
//add_action('wp_print_styles',array('fppopupcontent','fppopupcontentprocess'));
add_action('admin_menu',array('fppopupcontent','fppopupcontentadmin'));
add_action('admin_init',array('fppopupcontent','fppopupcontentupdate'));
register_activation_hook(__FILE__,array('fppopupcontent','fppopupcontentregister'));
$new = new fppopupcontent();
?>
我创建了一个示例弹出插件。
在上面的代码中,它在localhost中正常工作。但是当我在现场使用它时,它无法正常工作。
如果我使用FireBug查看代码,但CSS设置为display:none
。
我尝试将CSS更改为display:block
,然后显示但是当我点击关闭按钮时它不会关闭。
我不知道我做错了什么。如果有人能就如何做到这一点给我建议,那就太好了。
以下是我用于弹出窗口的css:
#fppop {
display: block;
background:color: #666;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 99999;
}
#fp-close {
width: 100%;
height: 100%
}
#fppopcnt {
background: white;
width: 600px;
height: 400px;
position: absolute;
top: 220px;
left: 630px;
-webkit-box-shadow: inset 0 0 50px 0 #939393;
-moz-box-shadow: inset 0 0 50px 0 #CCC;
box-shadow: inset 0 0 50px 0 #CCC;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
margin: -135px 0 0 -210px;
overflow: scroll;
}
#fpclose {
float: left;
cursor: pointer;
background: url(../images/fanclose.png) repeat;
height: 15px;
padding: 20px;
position: relative;
padding-right: 40px;
margin-top: -20px;
margin-right: -22px;
}
答案 0 :(得分:0)
1 一般
不同的PHP版本或环境设置可以解释您获得不同结果的原因。例如,下面的错误可能会有不同的处理?
检查localhost和实时服务器的PHP版本和WP版本。
2 您的显示问题
我不知道这是否相关,但您的代码中存在以下错误:
}
结束时(即在您的add_filter(...)
靠近底部的行之前<?php
标记。虽然2和3可能只是因为上面有代码,但你没有包括。
编辑:您现在已经通过外观清理了这些错误。
3 您的关闭按钮
编辑:抱歉,我上次忽略了包含此代码的硬编码脚本标记。
以下代码与您的关闭按钮相关联:
jQuery(document)
.ready(function($){
if(jQuery(document)
.ready(function($){
if($.cookies('popup_user_login')!='yes'){
$('#fppop')
.delay(100)
.fadeIn('medium');
$('#fpclose, #fp-close')
.click(function(){
$('#fppop')
.stop()
.fadeOut('medium')
})
}
$.cookies(
'popup_user_login',
'yes',
{
path:'/',
expires:<?php echo (get_option('fppopupdays')); ?>
}
)
});){
$('#fppop')
.delay(100)
.fadeIn('medium');
$('#fpclose, #fp-close')
.click(function(){
$('#fppop')
.stop()
.fadeOut('medium')
})
}
$.cookies(
'popup_user_login',
'yes',
{
path:'/',
expires:<?php echo (get_option('fppopupdays')); ?>
}
)
});
所以看起来你的fpclose
和fp-close
div上没有事件限制,除非$.cookies('popup_user_login')!='yes'
。
您在WP cookies.js
来电中加入了enqueue_script()
...但是您确认了吗?
a)此引用是否包含在发出的HTML中?
b)你正在调用它的HTML中实际可用.cookies()
方法吗?
c)您所引用的cookie实际存在吗?