购物盒子WordPress支付插件参考技术文档
如果你是一个开发者,或者自己懂一些前端编程知识,那么你可以自己修改你的主题进行支持!
1.常见问题
安装完成之后 登录页面如果出现如下错误:
Warning: Cannot modify header information – headers already sent by (output started at D:\xampp\htdocs\wordpress3\wp-includes\nav-menu-template.php:422) inD:\xampp\htdocs\wordpress3\wp-content\plugins\shoppingbox\login.php on line 14
这是由于php函数 header 在执行之前不能有任何echo的动作,一般出现这个警告是因为你的主题输出了菜单,也就是wp_nav_menu函数,一般这个函数在主题的 header .php中 你找到这个函数 前面加上ob_start(); 即可
如下代码所示
<?php ob_start(); wp_nav_menu(array( 'theme_location' => 'header-menu','menu_class'=> 'menu_nav' ) ); ?>
这样就能够避免出现错误了。
注意,如果你加上了这段代码或者找不到header.php中有wp_nav_menu函数,还是报错的话,你可以尝试在functions.php文件中<?php 之后加入ob_start(); 即可解决
登录注册点击无效果,或者提示一些没有逻辑的错误信息。
如果你建立好了登录注册,点击输入完整的用户名和密码,但什么都不显示也不报错,或者提示密码需要6位数等一些不符合逻辑的报错信息,请查看你的服务器php版本,服务器php版本必须为php5.3以上版本,否则注册登录会无法使用(点击注册登录无反应、不跳转),现在出现较多的问题的服务器主要是万网的虚拟主机,万网的虚拟主机默认安装的是php5.2版本,如果你是使用这个版本的php那么请去你的服务器高级环境设置中,将php版本设为5.3或者更高:
购物盒子在前期规划中出现了一个小的疏忽,那就是快递单号在数据库中的长度只有10,所以在使用时出现了快递单号超过10位数就显示不全的bug,在这里我们深感歉意。
由于这个字符长度无法使用程序修改,为了不影响之前的客户订单数据,只能从phpmyadmin中手动修改一下,这里也给出了解决的办法:http://www.themepark.com.cn/gwhzkddhwfcg10wsdxg.html
如果你的订单没有客户的订单,而是测试用的,可以升级插件到1.32,直接删除wp_wp-alipay这个数据库表,然后停用插件并在次启用插件,即可创建一个新的表,1.32的版本创建的新表格已经修复了快递单号的问题。
对此造成的不变深感抱歉!
QQ登录直接返回登录页面,不提示任何信息
出现这个问题,请检查你的服务器是否支持file_get_contents,可以检查php.in中allow_url_fopen = On
如果是开启了配置,那么请检查服务器是否支持https传输,如果不支持 请在php.ini中把extension=php_openssl.dll前面的;删掉,重启服务 即可
你也可以上传次文件到你的网站根目录,并输入你的网址/get_test.php 如果报错:Warning: fopen() [function.fopen]: Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?
那么就是不支持https的传输,按照上面的方法解决即可,也可以咨询你的服务器商帮你解决。
测试文件:get_test
[解压文件得到get_test.php,传到根目录并访问http://你的网址/get_test.php,看是否出现报错(Warning),若出现(callback)那么就是正常的]
使用WP Super Cache缓存之后,qq无法登陆
由于qq登录有个服务器的key是包含在链接里的, 缓存之后 这个key服务器上变化了 但是本地没变化 所以无法通过验证 就无法登陆,需要你在插件里面设置不缓存页面就可以避免这个问题的发生:
(上图是在缓存的“高级”选项卡中最下面找到)
另外高级选项中的杂项中 下图两个选项请勾选:
这样就可以正常使用QQ登录了
php函数和短代码列表
一下函数直接放在你想要的html位置即可输出对应的内容
在主题中声明支持购物盒子插件(将代码放入functions.php文件):
function shoppingbox_theme_support() {
return "您的主题已经支持购物盒子插件,您可以直接使用";
}
订单提交表单:
PHP函数:
<?php echo shop_form() ?>
短代码:[shop_short]
用户评论:
<?php echo shop_comment() ?>
短代码:[comment_short]
其他短代码
注册: [register_short]
登录: [login_short]
我的个人中心: [profile_short]
修改资料: [edit_profile]
找回密码: [fogotpassword]
输出只有登录用户才能看到的下载信息
[shop_download]
前端登录页面控制:
1. 判断用户是否登录
<?php if (is_user_logged_in()) { ?> //用户登录时输出的内容
<?php }else{ ?> //用户未登录时输出的内容
<?php }; ?>
登录注册和用户中心的链接获取
用户注册和登录是使用get_option来获取页面的id,也就是在插件的开放注册控制那里设定之后获取的get_option值
首先定义变量为这些id:
<?php $shop_login = get_option('shop_login');
$shop_register = get_option('shop_register');
$shop_profile = get_option('shop_profile'); ?>
然后输出:
<a href="<?php echo get_page_link( $shop_profile );?>">我的个人中心</a>
<a href="<?php echo get_page_link( $shop_login );?>">登录</a>
<a href="<?php echo get_page_link( $shop_register );?>">注册</a>
完整的判断用户是否登录而显示不同内容的代码:
<?php $shop_login = get_option('shop_login');
$shop_register = get_option('shop_register');
$shop_profile = get_option('shop_profile'); ?>
<?php
global $current_user; get_currentuserinfo();//这里是查询当前登录用户的信息
if (is_user_logged_in()) { ?>
<a href="<?php echo get_page_link( $shop_profile );?>">欢迎!<?php echo $current_user->display_name;//这里是通过查询的信息获取用户的名字 ?></a>
<a class="btn_login" href="<?php echo get_page_link( $shop_profile );?>">我的个人中心</a>
<?php }else{?>
<a href="<?php echo get_page_link( $shop_login );?>">登录</a>
<a href="<?php echo get_page_link( $shop_register );?>">注册</a>
<?php }?>
这样你就可以在你想要的地方输出对应的信息了,如图(需要自己调整一下css):
列表页的价格、评论人数、和星级显示
商品的价格是通过文章的自定义栏目获得的:
注意:下面的代码需要在WordPress主循环中输出才会有效:
WordPress主循环是如下:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- 这两段代码之间便是WordPress主循环,请确保下面的代码是贴在这内部的-->
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
<?php $price = get_post_meta($id, 'shop_price', true);//获取价格
$original_price=get_post_meta($id,"original_price", true);//获取原价
?>
上面是获取数据库中的价格和原价,下面的代码可以输出到页面,注意顺序,先获取 后输出
<?php echo $price //输出价格 ?>
<?php echo $original_price //原价 ?>
评分人数:
<?php echo shop_comment_number(); //输出评分人数 ?>
<?php if(shop_comment_number()){ ?> html代码 <?php echo shop_comment_number();?> html代码 <?php } //如果有评分,那么输入评分人数 ?>
评分星级:
评分星级是有插件的样式支持的,你可以直接如下调用:
<p id="order_stars" class="order_stars_<?php echo shop_comment_stars()?>"></p>
显示如下:
以上即是插件所输出的函数以及一些代码参考,如果你在开发过程中遇到找不到输出结果的情况,可以在下面留言,遇到兼容问题,也可以在下面留言
哪位大师给个回复呢,非常感激
购物盒子好像与我的主题不兼容,麻烦赐教下,如何修复这个问题。
启用购物盒子插件后显示:
无法启用插件,因为它引起了一个致命错误(fatal error)
Fatal error: Cannot redeclare is_admin_comment() (previously declared in D:\ceshi\xampp\htdocs\wordpress\wp-content\themes\2FengYun2\functions.php:225) in D:\ceshi\xampp\htdocs\wordpress\wp-content\plugins\shoppingbox\cat-bbs_sigon.php on line 10
我的主题代码:
224 // 判断管理员
225 function is_admin_comment ($comment_ID=0) {
226 $user_id = get_comment($comment_ID)->user_id;
227 $user_info = get_userdata($user_id);
228 return $user_info->user_level == 10;
229 return $admin_comment;
230 }
购物盒子代码:
1 user_id == 1){
7 $admin_comment = true;
8 }
9 return$admin_comment;
10 }
应该是主题和查件的函数名一样造成了冲突,下版本更新我们会将函数名修改成别的以解决这个问题
麻烦看下,我现在这个问题怎么解决呢?
你好,跟我用的主题冲突了,无法启用,帮忙看一下谢谢!
无法启用插件,因为它引起了一个致命错误(fatal error)。
Fatal error: Cannot redeclare mytheme_comment() (previously declared in /home/wwwroot/fulimp4/web/wp-content/themes/uctheme_wyzdg/inc/comments_list.php:3) in /home/wwwroot/fulimp4/web/wp-content/plugins/shoppingbox/cat-bbs_sigon.php on line 86
1.53版本已经修复
你好,自定义文章类型,如何兼容购物盒子呢
直接插入相关短代码即可
您好,我的意思是 自定义的文章类型,不显示“商品化文章选项” 这个界面,系统默认的文章类型正常显示
后台吗?后台是都会显示的,你可以折叠这一选项卡
是后台,我add_action(‘init’, ‘my_custom_init’); 添加了一个 产品 类。发布文章时,文章编辑框下面就没有 商品化文章选项 界面
付费下载有问题啊,不付费也可以看到下载链接
付费下载的链接是加密的,你看下是否设置到登陆下载的链接那里了。另外加密的付费下载链接必须是上传到服务器的不能使用网盘链接。
能出个1.4的技术文档吗?这上面只是例举了简单的代码调用
你需要编辑php.in,找到 disable_functions 后面是否有register_globals,并删除。这个可否讲详细一点啊,将register_globals=Off,改成了register_globals=On,还是不行,登陆还是没有反应,这个设置可否写详细一点啊,多谢!
现在查明是php版本的问题,将服务器环境的php版本升级到5.3以上即可
请问用户下了订单之后,用户在个人中心的订单列表里怎么取消订单?
目前还不支持这个操作,下版本的购物盒子加入购物车之后就可以管理订单了
Fatal error: Cannot redeclare custom_smilies_src() in /home/ftp/1520/too-20141004-Rci/shop.toobooo.com/wp-content/plugins/shoppingbox/cat-bbs_sigon.php on line 188
这应该修改哪
列表调用不了价格!咋办:
支持文档已经更新,请查看一下
关闭原登陆链接后 管理员账号无法登陆
插件的登录接口是否做好了? 这个测试过是没有问题的
我用测试账号登陆 都是无误的 请问怎么撤销这个操作。 只有管理员账号无法登陆 强行提升测试账号为管理员后 测试账号也无法登陆了
登录ftp 将插件文件夹该名称
登录入口是建立好了插件所提供的短代码页面么
是的,登陆入口是用短码建立的页面
有可能是对某些程序有冲突,这里在下一个版本会增加一个自定义管理员登陆的链接,这样分流一下,也比较安全
那么我修改文件名登陆之后 可以再启用么 这次不关闭默认登陆
你修改插件文件名之后默认会关闭插件,这样登录就行了 ,插件对默认登录入口没有影响
请问这个问题 更新了么? 一直等着用呢!
经过测试,管理员是可以登陆的,请下载最新版本安装,并按照教程去设置
我已经建好登录、注册、个人中心等页面的,但是登录总出现错误:【解决方案】,错误提示如下:
Warning: Cannot modify header information – headers already sent by (output started at /a/domains/aihee.com/public_html/wp-content/themes/twentythirteen/profile.php:1)
【解决方案:】
什么原因我知道,我是PHP小白,官方给我的解决办法,主题的functions.php文件加ob_start(); 解决
代码如下:
<?php ob_start();
希望别的小白碰到我这样的问题能帮到你奥 不用谢我 我是雷锋 要谢谢官方:)
<html >
<meta charset="”>
<meta name="description" content="” />
<meta name="keywords" content="” />
<a href="”>display_name;//这里是通过查询的信息获取用户的名字 ?>
<a class="btn_login" href="”>个人中心
<a href="”>登录
<a href="”>注册
提琴知识
提琴学院
官方商城
首页
您安装好了购物盒子之后,要在用户登录注册选项那里指定好你建立好的登录、注册、个人中心等页面,才会有正确的链接链接过去,注意添加先关代码时,php代码也需要加入好
我已经建好登录、注册、个人中心等页面的,但是登录总出现错误:
Warning: Cannot modify header information – headers already sent by (output started at /a/domains/aihee.com/public_html/wp-content/themes/twentythirteen/profile.php:1) in /a/domains/aihee.com/public_html/wp-includes/pluggable.php on line 918
Warning: Cannot modify header information – headers already sent by (output started at /a/domains/aihee.com/public_html/wp-content/themes/twentythirteen/profile.php:1) in /a/domains/aihee.com/public_html/wp-includes/pluggable.php on line 919
Warning: Cannot modify header information – headers already sent by (output started at /a/domains/aihee.com/public_html/wp-content/themes/twentythirteen/profile.php:1) in /a/domains/aihee.com/public_html/wp-includes/pluggable.php on line 920
Warning: Cannot modify header information – headers already sent by (output started at /a/domains/aihee.com/public_html/wp-content/themes/twentythirteen/profile.php:1) in /a/domains/aihee.com/public_html/wp-includes/pluggable.php on line 1178
链接的位置不对啊,我还不熟 正在摸索 谢谢你们
无法启用这个插件,提示如下:
Fatal error: Cannot redeclare cut_str() (previously declared in /home1/vhost/vh577915/www/wp-content/themes/tinection/functions.php:476) in /home1/vhost/vh577915/www/wp-content/plugins/shoppingbox/functions.php on line 66
插件和主题的函数有冲突,你可以看下wp-content/plugins/shoppingbox/functions.php 66行的函数