123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- <?php
- /**
- * FecShop file.
- *
- * @link http://www.fecshop.com/
- * @copyright Copyright (c) 2016 FecShop Software LLC
- * @license http://www.fecshop.com/license/
- */
- use fec\helpers\CRequest;
- ?>
- <div class="main container one-column">
- <div class="col-main">
- <?= Yii::$service->page->widget->render('flashmessage'); ?>
- <form action="<?= Yii::$service->url->getUrl('checkout/onepage'); ?>" method="post" id="onestepcheckout-form">
- <?= CRequest::getCsrfInputHtml(); ?>
- <div style="margin: 0;" class="group-select">
- <p class="onestepcheckout-description"><?= Yii::$service->page->translate->__('Welcome to the checkout,Fill in the fields below to complete your purchase');?> !</p>
- <?php if (\Yii::$app->user->isGuest): ?>
- <p class="onestepcheckout-login-link">
- <a external href="<?= Yii::$service->url->getUrl('customer/account/login'); ?>" id="onestepcheckout-login-link"><?= Yii::$service->page->translate->__('Already registered? Click here to login');?>.</a>
- </p>
- <?php endif; ?>
- <div class="onestepcheckout-threecolumns checkoutcontainer onestepcheckout-skin-generic onestepcheckout-enterprise">
- <div class="onestepcheckout-column-left">
- <?php # address 部门
- //echo $address_view_file;
- $addressView = [
- 'view' => $address_view_file,
- ];
- //var_dump($address_list);
- $addressParam = [
- 'cart_address_id' => $cart_address_id,
- 'address_list' => $address_list,
- 'customer_info' => $customer_info,
- 'country_select' => $country_select,
- 'state_html' => $state_html,
- 'cart_address' => $cart_address,
- //'payments' => $payments,
- //'current_payment_mothod' => $current_payment_mothod,
- ];
- ?>
- <?= Yii::$service->page->widget->render($addressView,$addressParam); ?>
-
- </div>
- <div class="onestepcheckout-column-middle">
- <div class="shipping_method_html">
- <?php # shipping部分
- $shippingView = [
- 'view' => 'checkout/onepage/index/shipping.php'
- ];
- $shippingParam = [
- 'shippings' => $shippings,
- ];
- ?>
- <?= Yii::$service->page->widget->render($shippingView,$shippingParam); ?>
- </div>
-
-
- <?php # payment部分
- $paymentView = [
- 'view' => 'checkout/onepage/index/payment.php'
- ];
- $paymentParam = [
- 'payments' => $payments,
- 'current_payment_mothod' => $current_payment_mothod,
- ];
- ?>
- <?= Yii::$service->page->widget->render($paymentView,$paymentParam); ?>
-
-
- <div class="onestepcheckout-coupons">
- <div style="display: none;" id="coupon-notice"></div>
- <div class="op_block_title"><?= Yii::$service->page->translate->__('Coupon codes (optional)');?></div>
- <label for="id_couponcode"><?= Yii::$service->page->translate->__('Enter your coupon code if you have one.');?></label>
-
- <input type="hidden" class="couponType" value="<?= $cart_info['coupon_code'] ? 1 : 2 ; ?>" />
- <input style="color:#777;" class="input-text" id="id_couponcode" name="coupon_code" value="<?= $cart_info['coupon_code']; ?>">
- <br>
- <button style="" type="button" class="submitbutton add_coupon_submit" id="onestepcheckout-coupon-add"><?= Yii::$service->page->translate->__($cart_info['coupon_code'] ? 'Cancel Coupon' : 'Add Coupon') ; ?></button>
- <div class="clear"></div>
- <div class="coupon_add_log"></div>
- </div>
-
- <div class="onestepcheckout-coupons">
- <div class="op_block_title"><?= Yii::$service->page->translate->__('Order Remark (optional)');?></div>
- <label for="id_couponcode"><?= Yii::$service->page->translate->__('You can fill in the order remark information below');?></label>
- <textarea class="order_remark" name="order_remark" style="width:100%;height:100px;padding:10px;"></textarea>
- </div>
-
- </div>
- <div class="onestepcheckout-column-right">
- <div class="review_order_view">
- <?php # review order部分
- $reviewOrderView = [
- 'view' => 'checkout/onepage/index/review_order.php'
- ];
- $reviewOrderParam = [
- 'cart_info' => $cart_info,
- 'currency_info' => $currency_info,
- ];
- ?>
- <?= Yii::$service->page->widget->render($reviewOrderView,$reviewOrderParam); ?>
-
- </div>
- <div class="onestepcheckout-place-order">
- <a class="large orange onestepcheckout-button" href="javascript:void(0)" id="onestepcheckout-place-order"><?= Yii::$service->page->translate->__('Place order now');?></a>
- <div class="onestepcheckout-place-order-loading"><img src="<?= Yii::$service->image->getImgUrl('images/opc-ajax-loader.gif'); ?>"> <?= Yii::$service->page->translate->__('Please wait, processing your order...');?></div>
- </div>
- </div>
- <div style="clear: both;"> </div>
- </div>
- </div>
- </form>
- </div>
- </div>
- <script>
- <?php $this->beginBlock('placeOrder') ?>
- csrfName = $(".thiscsrf").attr("name");
- csrfVal = $(".thiscsrf").val();
- function validateEmail(email) {
- var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(email);
- }
- // ajax
- function ajaxreflush(){
- shipping_method = $("input[name=shipping_method]:checked").val();
- //alert(shipping_method);
- country = $(".billing_country").val();
- address_id = $(".address_list").val();
- state = $(".address_state").val();
- //alert(state);
- if(country || address_id){
- $(".onestepcheckout-summary").html('<div style="text-align:center;min-height:40px;"><img src="<?= Yii::$service->image->getImgUrl('images/ajax-loader.gif'); ?>" /></div>');
- $(".onestepcheckout-shipping-method-block").html('<div style="text-align:center;min-height:40px;"><img src="<?= Yii::$service->image->getImgUrl('images/ajax-loader.gif'); ?>" /></div>');
- ajaxurl = "<?= Yii::$service->url->getUrl('checkout/onepage/ajaxupdateorder'); ?>";
- $.ajax({
- async:false,
- timeout: 8000,
- dataType: 'json',
- type:'get',
- data: {
- 'country':country,
- 'shipping_method':shipping_method,
- 'address_id':address_id,
- 'state':state,
- },
- url:ajaxurl,
- success:function(data, textStatus){
- status = data.status;
- if(status == 'success'){
- $(".review_order_view").html(data.reviewOrderHtml)
- $(".shipping_method_html").html(data.shippingHtml);
-
- }
-
- },
- error:function (XMLHttpRequest, textStatus, errorThrown){
-
- }
- });
- }
- }
- $(document).ready(function(){
- currentUrl = "<?= Yii::$service->url->getUrl('checkout/onepage') ?>"
- //优惠券
- $(".add_coupon_submit").click(function(){
- coupon_code = $("#id_couponcode").val();
- coupon_type = $(".couponType").val();
- coupon_url = "";
- $succ_coupon_type = 0;
- if(coupon_type == 2){
- coupon_url = "<?= Yii::$service->url->getUrl('checkout/cart/addcoupon'); ?>";
- $succ_coupon_type = 1;
- }else if(coupon_type == 1){
- coupon_url = "<?= Yii::$service->url->getUrl('checkout/cart/cancelcoupon'); ?>";
- $succ_coupon_type = 2;
- }
- //alert(coupon_type);
- if(!coupon_code){
- //alert("coupon can not empty!");
- }
- $data = {"coupon_code":coupon_code};
- $data[csrfName] = csrfVal;
- $.ajax({
- async:true,
- timeout: 6000,
- dataType: 'json',
- type:'post',
- data: $data,
- url:coupon_url,
- success:function(data, textStatus){
- if(data.status == 'success'){
- $(".couponType").val($succ_coupon_type);
- hml = $('.add_coupon_submit').html();
- if(hml == '<?= Yii::$service->page->translate->__('Add Coupon');?>'){
- $('.add_coupon_submit').html('<?= Yii::$service->page->translate->__('Cancel Coupon');?>');
- }else{
- $('.add_coupon_submit').html('<?= Yii::$service->page->translate->__('Add Coupon');?>');
- }
- $(".coupon_add_log").html("");
- ajaxreflush();
- }else if(data.content == 'nologin'){
- $(".coupon_add_log").html("<?= Yii::$service->page->translate->__('you must login your account before you use coupon');?>");
- }else{
- $(".coupon_add_log").html(data.content);
- }
- },
- error:function (XMLHttpRequest, textStatus, errorThrown){}
- });
- });
-
- // 对于非登录用户,可以填写密码,进行注册账户,这里进行信息的检查。
- $("#id_create_account").click(function(){
- if($(this).is(':checked')){
- email = $("input[name='billing[email]']").val();
- if(!email){
- $(this).prop('checked', false);
- $(".label_create_account").html(" <?= Yii::$service->page->translate->__('email address is empty, you must Fill in email');?>");
- }else{
- thischeckbox = this;
- if(!validateEmail(email)){
- $(this).prop('checked', false);
- $(".label_create_account").html(" <?= Yii::$service->page->translate->__('email address format is incorrect');?>");
-
- }else{
- // ajax get if email is register
- $.ajax({
- async:true,
- timeout: 6000,
- dataType: 'json',
- type:'get',
- data: {"email":email},
- url:"<?= Yii::$service->url->getUrl('customer/ajax/isregister'); ?>",
- success:function(data, textStatus){
- if(data.registered == 2){
- $(".label_create_account").html("");
- $("#onestepcheckout-li-password").show();
- $("#onestepcheckout-li-password input").addClass("required-entry");
-
- }else{
- $(thischeckbox).prop('checked', false);
- $(".label_create_account").html(" <?= Yii::$service->page->translate->__('This email is registered , you must fill in another email');?>");
- }
- },
- error:function (XMLHttpRequest, textStatus, errorThrown){}
- });
- }
- }
- }else{
- $(".label_create_account").html("");
- $("#onestepcheckout-li-password").hide();
- $("#onestepcheckout-li-password input").removeClass("required-entry");
- }
- });
- //###########################
- //下单(这个部分未完成。)
- $("#onestepcheckout-place-order").click(function(){
- $(".validation-advice").remove();
- i = 0;
- j = 0;
- address_list = $(".address_list").val();
- // shipping
- shipment_method = $(".onestepcheckout-shipping-method-block input[name='shipping_method']:checked").val();
- //alert(shipment_method);
- if(!shipment_method){
- $(".shipment-methods").after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
- j = 1;
- }
- //alert(j);
- //payment
- payment_method = $("#checkout-payment-method-load input[name='payment_method']:checked").val();
- //alert(shipment_method);
- if(!payment_method){
- $(".checkout-payment-method-load").after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
- j = 1;
- }
-
- if(address_list){
- if(!j){
- $(".onestepcheckout-place-order").addClass('visit');
-
- $("#onestepcheckout-form").submit();
- }
- }else{
- //alert(11);
- //alert(j);
- $("#onestepcheckout-form .required-entry").each(function(){
- value = $(this).val();
- if(!value){
- //alert(this);
- //alert($(this).attr('name'));
- i++;
- $(this).after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
- }
- });
- //email format validate
- user_email = $("#billing_address .validate-email").val();
- if(user_email && !validateEmail(user_email)){
- $("#billing_address .validate-email").after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('email address format is incorrect');?></div>');
- i++;
- }
- // password 是否长度大于6,并且两个密码一致
- if($("#id_create_account").is(':checked')){
- new_user_pass = $(".customer_password").val();
- new_user_pass_cm = $(".customer_confirm_password").val();
- //alert(new_user_pass);
- //alert(new_user_pass.length);
- //alert(new_user_pass_cm);
- <?php
- $passwdMinLength = Yii::$service->customer->getRegisterPassMinLength();
- $passwdMaxLength = Yii::$service->customer->getRegisterPassMaxLength();
- ?>
- passwdMinLength = "<?= $passwdMinLength ?>";
- passwdMaxLength = "<?= $passwdMaxLength ?>";
- if(new_user_pass.length < passwdMinLength){
- $(".customer_password").after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('Password length must be greater than or equal to {passwdMinLength}',['passwdMinLength' => $passwdMinLength]);?></div>');
- i++;
- }else if(new_user_pass.length > passwdMaxLength){
- $(".customer_password").after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('Password length must be less than or equal to {passwdMaxLength}',['passwdMaxLength' => $passwdMaxLength]);?></div>');
- i++;
- }else if(new_user_pass != new_user_pass_cm){
- $(".customer_confirm_password").after('<div style="" class="validation-advice"><?= Yii::$service->page->translate->__('The passwords are inconsistent');?></div>');
- i++;
- }
- }
- //alert(222);
- if(!i && !j){
- //alert(333);
- $(".onestepcheckout-place-order").addClass('visit');
- $("#onestepcheckout-form").submit();
- }
- }
-
- });
- //登录用户切换地址列表
- $(".address_list").change(function(){
- val = $(this).val();
- if(!val){
- $(".billing_address_list_new").show();
-
- $(".save_in_address_book").attr("checked","checked");
- ajaxreflush();
-
- }else{
- $(".billing_address_list_new").hide();
- $(".save_in_address_book").attr("checked",false);
- addressid = $(this).val();
-
- if(addressid){
- ajaxreflush();
- }
- }
- });
- // 国家选择后,state需要清空,重新选择或者填写
- $(".billing_country").change(function(){
- country = $(this).val();
- //state = $(".address_state").val();
- //shipping_method = $("input[name=shipping_method]:checked").val();
- //alert(shipping_method);
-
- //$(".onestepcheckout-shipping-method-block").html('<div style="text-align:center;min-height:40px;"><img src="http://www.intosmile.com/skin/default/images/ajax-loader.gif" /></div>');
- //$(".onestepcheckout-summary").html('<div style="text-align:center;min-height:40px;"><img src="http://www.intosmile.com/skin/default/images/ajax-loader.gif" /></div>');
- ajaxurl = "<?= Yii::$service->url->getUrl('checkout/onepage/changecountry'); ?>";
-
- $.ajax({
- async:true,
- timeout: 8000,
- dataType: 'json',
- type:'get',
- data: {
- 'country':country,
- //'shipping_method':shipping_method,
- //'state':state
- },
- url:ajaxurl,
- success:function(data, textStatus){
- $(".state_html").html(data.state);
-
- },
- error:function (XMLHttpRequest, textStatus, errorThrown){
-
- }
- });
- ajaxreflush();
- });
- // state select 改变后的事件
- $(".input-state").off("change").on("change","select.address_state",function(){
- ajaxreflush();
- });
- // state input 改变后的事件
- $(".input-state").off("blur").on("blur","input.address_state",function(){
- ajaxreflush();
- });
- //改变shipping methos
- $(".onestepcheckout-column-middle").off("click").on("click","input[name=shipping_method]",function(){
- ajaxreflush();
- });
- });
- //ajaxreflush();
- <?php $this->endBlock(); ?>
- <?php $this->registerJs($this->blocks['placeOrder'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
- </script>
-
-
|