购物盒子WordPress支付插件参考技术文档

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或者更高:

购物盒子WordPress支付插件参考技术文档

 

 

购物盒子在前期规划中出现了一个小的疏忽,那就是快递单号在数据库中的长度只有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服务器上变化了 但是本地没变化 所以无法通过验证 就无法登陆,需要你在插件里面设置不缓存页面就可以避免这个问题的发生:

购物盒子WordPress支付插件参考技术文档

(上图是在缓存的“高级”选项卡中最下面找到)

另外高级选项中的杂项中 下图两个选项请勾选:

购物盒子WordPress支付插件参考技术文档

这样就可以正常使用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主循环中输出才会有效:

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>

显示如下:

购物盒子WordPress支付插件参考技术文档

 

以上即是插件所输出的函数以及一些代码参考,如果你在开发过程中遇到找不到输出结果的情况,可以在下面留言,遇到兼容问题,也可以在下面留言

 

上一篇:

下一篇:

文章评论

您好!请登录

取消回复
  1. 理想境界 回复

    哪位大师给个回复呢,非常感激


  2. 理想境界 回复

    购物盒子好像与我的主题不兼容,麻烦赐教下,如何修复这个问题。

    启用购物盒子插件后显示:

    无法启用插件,因为它引起了一个致命错误(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 }


    • WEB主题公园
      WEB主题公园-管理员 回复

      应该是主题和查件的函数名一样造成了冲突,下版本更新我们会将函数名修改成别的以解决这个问题


      • 理想境界 回复

        麻烦看下,我现在这个问题怎么解决呢?


  3. 郎克亮 回复

    你好,跟我用的主题冲突了,无法启用,帮忙看一下谢谢!
    无法启用插件,因为它引起了一个致命错误(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


    • WEB主题公园
      WEB主题公园-管理员 回复

      1.53版本已经修复


  4. mms 回复

    你好,自定义文章类型,如何兼容购物盒子呢


    • WEB主题公园
      WEB主题公园-管理员 回复

      直接插入相关短代码即可


      • mms 回复

        您好,我的意思是 自定义的文章类型,不显示“商品化文章选项” 这个界面,系统默认的文章类型正常显示


        • WEB主题公园
          WEB主题公园-管理员 回复

          后台吗?后台是都会显示的,你可以折叠这一选项卡


          • mms 回复

            是后台,我add_action(‘init’, ‘my_custom_init’); 添加了一个 产品 类。发布文章时,文章编辑框下面就没有 商品化文章选项 界面


  5. 175 回复

    付费下载有问题啊,不付费也可以看到下载链接


    • WEB主题公园
      WEB主题公园-管理员 回复

      付费下载的链接是加密的,你看下是否设置到登陆下载的链接那里了。另外加密的付费下载链接必须是上传到服务器的不能使用网盘链接。


  6. 25069133 回复

    能出个1.4的技术文档吗?这上面只是例举了简单的代码调用


  7. 回复

    你需要编辑php.in,找到 disable_functions 后面是否有register_globals,并删除。这个可否讲详细一点啊,将register_globals=Off,改成了register_globals=On,还是不行,登陆还是没有反应,这个设置可否写详细一点啊,多谢!


    • WEB主题公园
      WEB主题公园-管理员 回复

      现在查明是php版本的问题,将服务器环境的php版本升级到5.3以上即可


  8. 潘潘 回复

    请问用户下了订单之后,用户在个人中心的订单列表里怎么取消订单?


    • WEB主题公园
      WEB主题公园-管理员 回复

      目前还不支持这个操作,下版本的购物盒子加入购物车之后就可以管理订单了


  9. 莆田鞋厂代发 回复

    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
    这应该修改哪


  10. 酷鬼 回复

    列表调用不了价格!咋办:


    • WEB主题公园
      WEB主题公园-管理员 回复

      支持文档已经更新,请查看一下


  11. 冬日映画 回复

    关闭原登陆链接后 管理员账号无法登陆


    • WEB主题公园
      WEB主题公园-管理员 回复

      插件的登录接口是否做好了? 这个测试过是没有问题的


      • 冬日映画 回复

        我用测试账号登陆 都是无误的 请问怎么撤销这个操作。 只有管理员账号无法登陆 强行提升测试账号为管理员后 测试账号也无法登陆了


        • WEB主题公园
          WEB主题公园-管理员 回复

          登录ftp 将插件文件夹该名称
          登录入口是建立好了插件所提供的短代码页面么


          • 冬日映画 回复

            是的,登陆入口是用短码建立的页面


            • WEB主题公园
              WEB主题公园-管理员 回复

              有可能是对某些程序有冲突,这里在下一个版本会增加一个自定义管理员登陆的链接,这样分流一下,也比较安全


              • 冬日映画 回复

                那么我修改文件名登陆之后 可以再启用么 这次不关闭默认登陆


                • WEB主题公园
                  WEB主题公园-管理员 回复

                  你修改插件文件名之后默认会关闭插件,这样登录就行了 ,插件对默认登录入口没有影响


                  • 冬日映画 回复

                    请问这个问题 更新了么? 一直等着用呢!


                    • WEB主题公园
                      WEB主题公园-管理员 回复

                      经过测试,管理员是可以登陆的,请下载最新版本安装,并按照教程去设置


  12. 酷鬼 回复

    我已经建好登录、注册、个人中心等页面的,但是登录总出现错误:【解决方案】,错误提示如下:
    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();
    希望别的小白碰到我这样的问题能帮到你奥 不用谢我 我是雷锋 要谢谢官方:)


  13. 酷鬼 回复

    <html >

    <meta charset="”>

    <meta name="description" content="” />
    <meta name="keywords" content="” />

    <a href="”>display_name;//这里是通过查询的信息获取用户的名字 ?>
    <a class="btn_login" href="”>个人中心

    <a href="”>登录
    <a href="”>注册

    提琴知识
    提琴学院
    官方商城
    首页


    • WEB主题公园
      WEB主题公园-管理员 回复

      您安装好了购物盒子之后,要在用户登录注册选项那里指定好你建立好的登录、注册、个人中心等页面,才会有正确的链接链接过去,注意添加先关代码时,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


  14. 酷鬼 回复

    链接的位置不对啊,我还不熟 正在摸索 谢谢你们


  15. 胖子|pzguanli.com 回复

    无法启用这个插件,提示如下:
    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


    • WEB主题公园
      WEB主题公园-管理员 回复

      插件和主题的函数有冲突,你可以看下wp-content/plugins/shoppingbox/functions.php 66行的函数


展开更多