ecshop 按订单金额发放红包 发放存在多发的问题

http://bbs.ecshop.com/viewthread.php?tid=159368

原始问题如上,截屏如下

ecshop_bonus

 

解决问题是看  includes\lib_order.php 的函数 get_total_bonus

原来代码是如下的

/* 按订单发的红包 */
$sql = “SELECT FLOOR(‘$amount’ / min_amount) * type_money ” .
“FROM ” . $GLOBALS['ecs']->table(‘bonus_type’) .
” WHERE send_type = ‘” . SEND_BY_ORDER . “‘ ” .
” AND send_start_date <= ‘$today’ ” .
“AND send_end_date >= ‘$today’ ” .
“AND min_amount > 0 “;

很显然,凡是比较最低订单金额大的订单,都会导致商的个数的红包,我们其实只要发的是最大的红包那个就可以了,所以我们修改如下

/* 按订单发的红包 */
$sql = “SELECT FLOOR(‘$amount’ / min_amount) * type_money ” .
“FROM ” . $GLOBALS['ecs']->table(‘bonus_type’) .
” WHERE send_type = ‘” . SEND_BY_ORDER . “‘ ” .
” AND send_start_date <= ‘$today’ ” .
“AND send_end_date >= ‘$today’ ” .
“AND min_amount > 0 and min_amount <= ‘$amount’ order by min_amount desc limit 1 “; 注意上面这行的条件增加了
and min_amount <= ‘$amount’ order by min_amount desc limit 1
就是说最接近订单额度的红包发放条件,取一个即可

备忘一个shopex的密码加密记录方式

在shopex的4.8.5 的 core/model_v5/member/mdl.account.php

文件里面记录了shopex用户的密码是如何存储到数据库的,在

encrypt_passwd_enhanced 函数里面是这样写的

public function encrypt_passwd_enhanced( $pwd, $uname, $regtime )

{

if ( !$pwd || !$uname || !$regtime )

{

return false;

}

$pwd = md5( md5( trim( $pwd ) ).strtolower( $uname ).$regtime );

return “s”.substr( $pwd, 0, 31 );

}

下图中的红圈部分就是加密代码,那么如果在转移到ecshop 时候,因为ecshop只是做了md5(password) 的密码检查,显然登录会失败,那么再加一种这样的检查,就可以登录了,hoho。。。。shopex-userpassword

 

在ecshop 的  includes\modules\integrates\ecshop.php 的行 check_user 函数里面有

if ($row['password'] != $this->compile_password(array(‘password’=>$password,’ec_salt’=>$ec_salt)))

我们只需要再加一个

$pwd = md5( md5( trim( $pwd ) ).strtolower( $uname ).$regtime );

$shopex_pass =  ”s”.substr( $pwd, 0, 31 );

判断改成这样

if ($row['password'] != $this->compile_password(array(‘password’=>$password,’ec_salt’=>$ec_salt)) || $row['password'] !=  $shopex_pass )

就可以了

 

 

apache 泛域名伪静态的一点备忘

匹配所有非 www bbs 开头的域名,可以匹配 111.domain.com aaa.domain.com

RewriteCond %{HTTP_HOST} ^(?!www|bbs)([^.]+).domainname.com [NC]
RewriteRule ^$   test.php?uid=%1 [QSA,L]
或者
RewriteCond %{HTTP_HOST} ^(.+)\.domainname.com$ [NC]
RewriteCond %1 !^(www|bbs)$ 
RewriteRule ^$   test.php?uid=%1 [QSA,L]

test.php 这样写

 
print_r($_GET);
 

wordpress 设置联系表单发送到邮件email 插件

我们在 http://blazdesign.com/5-free-wordpress-contact-form-plugins-to-consider/

测试下第一个 CONTACT FORM 7

下载地址 http://wordpress.org/plugins/contact-form-7/

下载后上传到 wp-contents/plugins/

照例后台plugins 激活(activate) 此插件

点击插件下的settings 功能

点击add new 添加一个新表单

wp-mail-contactform

 

添加后点击save , 得到 一个字符串 ,写到你的帖子(posts)里面就可以了

wp-mail-contactform2

wordpress 设置 smtp 的插件

从这里下载 wp-smtp 插件 http://wordpress.org/plugins/wp-mail-smtp/
解压后目录名 wp-mail-smtp 上传到 wordpress 网站的wp-contents/plugins/ 目录里面
设置方法是
1) 后台-》plugins -> 首先激活(activate) WP-Mail-SMTP
2)点击 plugins->WP-Mail-SMTP->settings
下图片中 1-7 为需要注意的地方
wp-mail-smtp