Plugin Directory

Changeset 1298994


Ignore:
Timestamp:
12/02/2015 12:31:01 PM (10 years ago)
Author:
rateit.cool
Message:

Version 1.0.2: public review form, detail review

Location:
rateitcool/trunk
Files:
2 added
12 edited

Legend:

Unmodified
Added
Removed
  • rateitcool/trunk/assets/css/rate-it-cool.css

    r1250160 r1298994  
    55}
    66.woocommerce .star-rating {
    7   width: 90px;
     7  width: 85px;
    88  float: left;
    99  margin: 4px 0;
     10}
     11.rate-it-cool-product-feedbacks hr {
     12  margin: 5px 0;
    1013}
    1114.rate-it-cool-product-feedbacks .date {
     
    1316}
    1417.rate-it-cool-product-feedbacks td.ratings {
    15   width: 80px;
     18  width: 85px;
    1619}
    1720.rate-it-cool-product-feedbacks .helpful .positive, .rate-it-cool-product-feedbacks .helpful .negative {
     
    3336  margin-top: 10px;
    3437}
     38.rate-it-cool-show-stars {
     39  margin-left: 5px;
     40  padding: 2px 5px;
     41  cursor: pointer;
     42  outline: #ccc 1px solid;
     43}
     44
     45.rate-it-cool-stars-detail-table {
     46  outline: solid 1px #ccc;
     47  margin-top: 10px;
     48  max-width: 200px;
     49}
     50
     51#feedbackform table {
     52  max-width: 200px;
     53}
     54
     55.rate-it-cool-stars-detail-table td, .rate-it-cool-stars-detail-table th {
     56  padding: 2px;
     57}
     58.rate-it-cool-stars-detail-table td.stars {
     59  width: 90px;
     60}
     61
     62.overview table.feedbackOverview {
     63  float: left;
     64  width: 200px;
     65}
     66table.rate-it-cool-detail-stars {
     67  float: right;
     68  width:200px;
     69}
     70.clearfix {
     71  clear:both;
     72}
     73.feedbackOverview td, .rate-it-cool-detail-stars td {
     74  padding: 2px;
     75}
     76.rate-it-cool-stars-detail-table th {
     77  background-color: #ccc;
     78  font-weight: bold;
     79}
     80.rate-it-cool-verified, .rate-it-cool-public, .rate-it-cool-mobile {
     81  float: right;
     82  font-weight: bold;
     83}
     84
     85.star-rating.oneStars, .star-rating.twoStars, .star-rating.threeStars, .star-rating.fourStars, .star-rating.fiveStars {
     86  width: 17px;
     87  float:left;
     88}
     89.feedback-title input {
     90  width: 100%;
     91  margin: 0 0 10px 0;
     92}
  • rateitcool/trunk/assets/js/rateit.cool.js

    r1253364 r1298994  
    55      _limit = 3,
    66      _jQuery = $,
     7      _securityText = '',
     8      _labels = {},
    79      _server = 'https://api.rateit.cool',
    810      _oldjQuery = $;
     
    2527          gpnvalues = {},
    2628          gpnvalue = '',
    27           error = true;
     29          language = '',
     30          error = true,
     31          formId = undefined;
    2832      for ( var i = 0; i < productlistSpans.length; i++ ) {
    2933        if (_jQuery(productlistSpans[ i ]).attr('data-gpntype') !== undefined) {
    3034          gpntype =  _jQuery(productlistSpans[ i ]).attr('data-gpntype');
    3135        }
     36        if (_jQuery(productlistSpans[ i ]).attr('data-language') !== undefined) {
     37          if (language === '') {
     38            language =  _jQuery(productlistSpans[ i ]).attr('data-language');
     39          }
     40        }
    3241        if (_jQuery(productlistSpans[ i ]).attr('data-gpnvalue') !== undefined) {
    3342          gpnvalue = _jQuery(productlistSpans[ i ]).attr('data-gpnvalue');
     
    4554          }
    4655        }
     56        if (_jQuery(productlistSpans[ i ]).attr('data-form') !== undefined) {
     57          formId = _jQuery(productlistSpans[ i ]).attr('data-form');
     58        }
    4759      }
    4860      if (!error) {
     
    5062          if (values.length > 0) {
    5163            _jQuery.ajax({
    52               url : _server + '/stars/' + gpntype + '/' + values.join(','),
     64              url : _server + '/stars/' + gpntype + '/' + values.join(',') + '/' + language,
    5365              method: 'GET',
    5466              dataType : 'json',
     
    6678                    destinationElement.find('.rate-it-cool-review-summary').attr('style','width: ' + Number((oneRatingResponse.summary * 20).toFixed(0)) + '%;');
    6779                    destinationElement.find('.rateit-cool-review-link').show();
     80                    if (formId !== undefined) {
     81                      // feedback form
     82                      if (oneRatingResponse.details !== undefined) {
     83                        if (oneRatingResponse.details.detail1 !== undefined) {
     84                          _jQuery('form[name=' + formId + ']').find('.reviewDetail1 .label').text(oneRatingResponse.labels.detail1);
     85                          _jQuery('form[name=' + formId + ']').find('.reviewDetail1').show();
     86                        }
     87                        if (oneRatingResponse.details.detail2 !== undefined) {
     88                          _jQuery('form[name=' + formId + ']').find('.reviewDetail2 .label').text(oneRatingResponse.labels.detail2);
     89                          _jQuery('form[name=' + formId + ']').find('.reviewDetail2').show();
     90                        }
     91                        if (oneRatingResponse.details.detail3 !== undefined) {
     92                          _jQuery('form[name=' + formId + ']').find('.reviewDetail3 .label').text(oneRatingResponse.labels.detail3);
     93                          _jQuery('form[name=' + formId + ']').find('.reviewDetail3').show();
     94                        }
     95                        if (oneRatingResponse.details.detail4 !== undefined) {
     96                          _jQuery('form[name=' + formId + ']').find('.reviewDetail4 .label').text(oneRatingResponse.labels.detail4);
     97                          _jQuery('form[name=' + formId + ']').find('.reviewDetail4').show();
     98                        }
     99                      }
     100                    } else if (oneRatingResponse.details !== undefined) {
     101                      if (oneRatingResponse.details.detail1 !== undefined) {
     102                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail1 .label').text(oneRatingResponse.labels.detail1);
     103                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail1').show();
     104                      }
     105                      if (oneRatingResponse.details.detail2 !== undefined) {
     106                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail2 .label').text(oneRatingResponse.labels.detail2);
     107                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail2').show();
     108                      }
     109                      if (oneRatingResponse.details.detail3 !== undefined) {
     110                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail3 .label').text(oneRatingResponse.labels.detail3);
     111                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail3').show();
     112                      }
     113                      if (oneRatingResponse.details.detail4 !== undefined) {
     114                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail4 .label').text(oneRatingResponse.labels.detail4);
     115                        _jQuery('.rate-it-cool-feedback-form').find('.reviewDetail4').show();
     116                      }
     117                    }
    68118                  });
    69119                }
     
    80130    var productlistSpans = _jQuery('.rate-it-cool-product-detail'),
    81131        gpntype = '',
    82         gpnvalue = '';
     132        gpnvalue = '',
     133        language = '',
     134        template = '';
    83135
    84136    if (productlistSpans && productlistSpans.length > 0) {
     
    89141      if (_jQuery(productlistSpans[0]).attr('data-gpnvalue') !== undefined) {
    90142        gpnvalue = _jQuery(productlistSpans[0]).attr('data-gpnvalue');
     143      }
     144      if (_jQuery(productlistSpans[0]).attr('data-language') !== undefined) {
     145        if (language === '') {
     146          language =  _jQuery(productlistSpans[0]).attr('data-language');
     147        }
    91148      }
    92149      var destinationElement = _jQuery(productlistSpans[0]);
    93150      if (gpntype && gpnvalue) {
    94151        _jQuery.ajax({
    95           url : _server + '/stars/' + gpntype + '/' + gpnvalue,
     152          url : _server + '/stars/' + gpntype + '/' + gpnvalue + '/' + language,
    96153          method: 'GET',
    97154          dataType : 'json',
     
    103160          },
    104161          success : function(data) {
     162            template = _jQuery('.rate-it-cool-stars-detail-table').html();
    105163            if (data.length > 0) {
    106164              var oneRatingResponse = data[0];
     165              if (oneRatingResponse.details !== undefined) {
     166                if (oneRatingResponse.details.detail1 !== undefined) {
     167                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail1 .label').text(oneRatingResponse.labels.detail1);
     168                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail1').show();
     169                }
     170                if (oneRatingResponse.details.detail2 !== undefined) {
     171                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail2 .label').text(oneRatingResponse.labels.detail2);
     172                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail2').show();
     173                }
     174                if (oneRatingResponse.details.detail3 !== undefined) {
     175                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail3 .label').text(oneRatingResponse.labels.detail3);
     176                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail3').show();
     177                }
     178                if (oneRatingResponse.details.detail4 !== undefined) {
     179                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail4 .label').text(oneRatingResponse.labels.detail4);
     180                  _jQuery('#feedbackform.rate-it-cool-feedback-form').find('.reviewDetail4').show();
     181                }
     182              }
     183              if (oneRatingResponse.total > 0) {
     184                _jQuery('.rate-it-cool-stars-detail-table').html(template
     185                  .split('$review.summary').join(Number((oneRatingResponse.summary).toFixed(0)))
     186                  .split('$review.total').join(oneRatingResponse.total)
     187                  .split('$review.star5').join(oneRatingResponse.stars.five)
     188                  .split('$review.star4').join(oneRatingResponse.stars.four)
     189                  .split('$review.star3').join(oneRatingResponse.stars.three)
     190                  .split('$review.star2').join(oneRatingResponse.stars.two)
     191                  .split('$review.star1').join(oneRatingResponse.stars.one)
     192                  .split('$details.display').join((oneRatingResponse.details == undefined || oneRatingResponse.details.detail1 == undefined ? 'display:none;':''))
     193                  .split('$details.total').join((oneRatingResponse.details == undefined || oneRatingResponse.details.total !== undefined ? oneRatingResponse.details.total:0))
     194                  .split('$details.percent').join((oneRatingResponse.details == undefined || oneRatingResponse.details.total !== undefined ? Number(oneRatingResponse.details.total/(oneRatingResponse.total/100).toFixed(2)) :0))
     195                  .split('$details.detail1.display').join((oneRatingResponse.details == undefined || oneRatingResponse.details.detail1 == undefined ? 'display:none;':''))
     196                  .split('$details.detail2.display').join((oneRatingResponse.details == undefined || oneRatingResponse.details.detail2 == undefined ? 'display:none;':''))
     197                  .split('$details.detail3.display').join((oneRatingResponse.details == undefined || oneRatingResponse.details.detail3 == undefined ? 'display:none;':''))
     198                  .split('$details.detail4.display').join((oneRatingResponse.details == undefined || oneRatingResponse.details.detail4 == undefined ? 'display:none;':''))
     199                  .split('$details.detail1.title').join((oneRatingResponse.labels.detail1 !== undefined ? oneRatingResponse.labels.detail1:''))
     200                  .split('$details.detail2.title').join((oneRatingResponse.labels.detail2 !== undefined ? oneRatingResponse.labels.detail2:''))
     201                  .split('$details.detail3.title').join((oneRatingResponse.labels.detail3 !== undefined ? oneRatingResponse.labels.detail3:''))
     202                  .split('$details.detail4.title').join((oneRatingResponse.labels.detail4 !== undefined ? oneRatingResponse.labels.detail4:''))
     203                  .split('$review.details.detail1').join( (Number(oneRatingResponse.details.detail1)*20).toFixed(0) )
     204                  .split('$review.details.detail2').join( (Number(oneRatingResponse.details.detail2)*20).toFixed(0) )
     205                  .split('$review.details.detail3').join( (Number(oneRatingResponse.details.detail3)*20).toFixed(0) )
     206                  .split('$review.details.detail4').join( (Number(oneRatingResponse.details.detail4)*20).toFixed(0) )
     207                );
     208
     209                destinationElement.find('.rate-it-cool-show-stars').show();
     210              }
    107211              destinationElement.find('.rate-it-cool-review-counts').text(oneRatingResponse.total);
    108212              destinationElement.find('.rate-it-cool-review-summary').removeClass('rate-it-cool-review-summary-empty').attr('style','width: ' + Number((oneRatingResponse.summary * 20).toFixed(0)) + '%;');
     
    121225        language = '',
    122226        templateOneFeedback = _jQuery('#rate-it-cool-product-feedbacks-template .feedbackElement').html(),
     227        templateMissingFeedback = _jQuery('#rate-it-cool-product-feedbacks-template .missingFeedback').html(),
     228        templateFeedbackForm = _jQuery('#rate-it-cool-product-feedbacks-template .feedbackElements #feedbackform').html(),
    123229        templateList = _jQuery('#rate-it-cool-product-feedbacks-template .feedbackElements').html();
    124230
     
    144250
    145251        _jQuery.ajax({
    146           url : _server + '/feedback/' + gpntype + '/' + gpnvalue + '/' + language + '?limit=' + _limit + '&full=true' + extendedString,
     252          url : _server + '/feedback/' + gpntype + '/' + gpnvalue + '/' + language + '?limit=' + _limit + extendedString,
    147253          method: 'GET',
    148254          dataType : 'json',
     
    164270                counts = data.region;
    165271              }
     272              _labels = data.overview.labels;
     273              if (data.overview.details == undefined) {
     274                data.overview.details = {};
     275              }
    166276              templateList = templateList.replace('$five', data.overview.stars.five)
    167277                                          .replace('$four', data.overview.stars.four)
     
    170280                                          .replace('$one', data.overview.stars.one)
    171281                                          .replace('$total.all', data.total.all)
     282                                          .replace('$overview.total', data.overview.total)
     283                                          .split('$detail.show').join( (data.overview.details.detail1 !== undefined?'':'display:none;') )
     284                                          .replace('$details.total', (data.overview.details == undefined || data.overview.details.total !== undefined ? data.overview.details.total : 0))
     285                                          .replace('$details.percent', (data.overview.details == undefined || data.overview.details.total !== undefined ? Number(data.overview.details.total/(data.overview.total/100).toFixed(2)) :0))
     286                                          .replace('$details.detail1.display', (data.overview.details == undefined || data.overview.details.detail1 == undefined ? 'display:none;':''))
     287                                          .replace('$details.detail2.display', (data.overview.details == undefined || data.overview.details.detail2 == undefined ? 'display:none;':''))
     288                                          .replace('$details.detail3.display', (data.overview.details == undefined || data.overview.details.detail3 == undefined ? 'display:none;':''))
     289                                          .replace('$details.detail4.display', (data.overview.details == undefined || data.overview.details.detail4 == undefined ? 'display:none;':''))
     290                                          .replace('$details.detail1.title', (data.overview.labels.detail1 !== undefined ? data.overview.labels.detail1:''))
     291                                          .replace('$details.detail2.title', (data.overview.labels.detail2 !== undefined ? data.overview.labels.detail2:''))
     292                                          .replace('$details.detail3.title', (data.overview.labels.detail3 !== undefined ? data.overview.labels.detail3:''))
     293                                          .replace('$details.detail4.title', (data.overview.labels.detail4 !== undefined ? data.overview.labels.detail4:''))
     294                                          .split('$detail.detail1').join( Number((data.overview.details.detail1 !== undefined?(data.overview.details.detail1*20):0)).toFixed(0) )
     295                                          .split('$detail.detail2').join( Number((data.overview.details.detail2 !== undefined?(data.overview.details.detail2*20):0)).toFixed(0) )
     296                                          .split('$detail.detail3').join( Number((data.overview.details.detail3 !== undefined?(data.overview.details.detail3*20):0)).toFixed(0) )
     297                                          .split('$detail.detail4').join( Number((data.overview.details.detail4 !== undefined?(data.overview.details.detail4*20):0)).toFixed(0) )
    172298                                          .replace('$total.language', data.total.language)
    173299                                          .replace('$total.region', data.total.region)
     
    181307                // create elemnt from template
    182308                var oneFeedback = templateOneFeedback;
     309                if (feedback.details == undefined) {
     310                  feedback.details = {};
     311                }
    183312                oneFeedback = oneFeedback.replace('$review.stars', (feedback.stars * 20))
    184                                           .replace('$review.time', new Date(feedback.time).toLocaleString())
     313                                          .replace('$review.time', new Date(feedback.time).toLocaleDateString())
    185314                                          .replace('$review.title', feedback.title)
    186315                                          .replace('$review.content', feedback.content)
     
    189318                                          .split('$review.gpnvalue').join(data.gpnvalue)
    190319                                          .split('$review.language').join(feedback.language + '_' + feedback.region)
     320                                          .split('$review.detail.show').join( (feedback.details !== undefined && feedback.details.detail1 !== undefined?'':'display:none;'))
     321                                          .replace('$details.detail1.display', (feedback.details == undefined || feedback.details.detail1 == undefined ? 'display:none;':''))
     322                                          .replace('$details.detail2.display', (feedback.details == undefined || feedback.details.detail2 == undefined ? 'display:none;':''))
     323                                          .replace('$details.detail3.display', (feedback.details == undefined || feedback.details.detail3 == undefined ? 'display:none;':''))
     324                                          .replace('$details.detail4.display', (feedback.details == undefined || feedback.details.detail4 == undefined ? 'display:none;':''))
     325                                          .replace('$details.detail1.title', (_labels.detail1 !== undefined ? _labels.detail1:''))
     326                                          .replace('$details.detail2.title', (_labels.detail2 !== undefined ? _labels.detail2:''))
     327                                          .replace('$details.detail3.title', (_labels.detail3 !== undefined ? _labels.detail3:''))
     328                                          .replace('$details.detail4.title', (_labels.detail4 !== undefined ? _labels.detail4:''))
     329                                          .split('$review.detail.detail1').join( (feedback.details.detail1 !== undefined?(feedback.details.detail1*20):0))
     330                                          .split('$review.detail.detail2').join( (feedback.details.detail2 !== undefined?(feedback.details.detail2*20):0))
     331                                          .split('$review.detail.detail3').join( (feedback.details.detail3 !== undefined?(feedback.details.detail3*20):0))
     332                                          .split('$review.detail.detail4').join( (feedback.details.detail4 !== undefined?(feedback.details.detail4*20):0))
     333                                          .split('$review.source').join(feedback.source)
     334                                          .split('$review.verified_source').join((feedback.source === 'verified'?'display:block;':'display:none;'))
     335                                          .split('$review.public_source').join((feedback.source === 'public'?'display:block;':'display:none;'))
     336                                          .split('$review.mobile_source').join((feedback.source === 'mobile'?'display:block;':'display:none;'))
    191337                                          .split('$review.positive').join(feedback.positive)
    192338                                          .split('$review.negative').join(feedback.negative);
     
    195341              });
    196342              destinationElement.html(templateList.replace('$list',feedbackElements.join('')));
     343            } else {
     344              destinationElement.html(templateMissingFeedback.split('$feedbackForm').join(templateFeedbackForm));
     345              if (data.overview.details !== undefined) {
     346                if (data.overview.details.detail1 !== undefined) {
     347                  destinationElement.find('.reviewDetail1 .label').text(data.overview.labels.detail1);
     348                  destinationElement.find('.reviewDetail1').show();
     349                }
     350                if (data.overview.details.detail2 !== undefined) {
     351                  destinationElement.find('.reviewDetail2 .label').text(data.overview.labels.detail2);
     352                  destinationElement.find('.reviewDetail2').show();
     353                }
     354                if (data.overview.details.detail3 !== undefined) {
     355                  destinationElement.find('.reviewDetail3 .label').text(data.overview.labels.detail3);
     356                  destinationElement.find('.reviewDetail3').show();
     357                }
     358                if (data.overview.details.detail4 !== undefined) {
     359                  destinationElement.find('.reviewDetail4 .label').text(data.overview.labels.detail4);
     360                  destinationElement.find('.reviewDetail4').show();
     361                }
     362              }
    197363            }
    198364          }
     
    271437                var oneFeedback = templateOneFeedback;
    272438                oneFeedback = oneFeedback.replace('$review.stars', (feedback.stars * 20))
    273                                           .replace('$review.time', new Date(feedback.time).toLocaleString())
     439                                          .replace('$review.time', new Date(feedback.time).toLocaleDateString())
    274440                                          .replace('$review.title', feedback.title)
    275441                                          .replace('$review.content', feedback.content)
    276442                                          .split('$review.id').join(feedback._id)
     443                                          .split('$review.detail.show').join( (feedback.details !== undefined && feedback.details.detail1 !== undefined?'':'display:none;'))
     444                                          .replace('$details.detail1.display', (feedback.details == undefined || feedback.details.detail1 == undefined ? 'display:none;':''))
     445                                          .replace('$details.detail2.display', (feedback.details == undefined || feedback.details.detail2 == undefined ? 'display:none;':''))
     446                                          .replace('$details.detail3.display', (feedback.details == undefined || feedback.details.detail3 == undefined ? 'display:none;':''))
     447                                          .replace('$details.detail4.display', (feedback.details == undefined || feedback.details.detail4 == undefined ? 'display:none;':''))
     448                                          .replace('$details.detail1.title', (_labels.detail1 !== undefined ? _labels.detail1:''))
     449                                          .replace('$details.detail2.title', (_labels.detail2 !== undefined ? _labels.detail2:''))
     450                                          .replace('$details.detail3.title', (_labels.detail3 !== undefined ? _labels.detail3:''))
     451                                          .replace('$details.detail4.title', (_labels.detail4 !== undefined ? _labels.detail4:''))
     452                                          .split('$review.detail.detail1').join( (feedback.details.detail1 !== undefined?(feedback.details.detail1*20):0))
     453                                          .split('$review.detail.detail2').join( (feedback.details.detail2 !== undefined?(feedback.details.detail2*20):0))
     454                                          .split('$review.detail.detail3').join( (feedback.details.detail3 !== undefined?(feedback.details.detail3*20):0))
     455                                          .split('$review.detail.detail4').join( (feedback.details.detail4 !== undefined?(feedback.details.detail4*20):0))
     456                                          .split('$review.source').join(feedback.source)
     457                                          .split('$review.verified_source').join((feedback.source === 'verified'?'display:block;':'display:none;'))
     458                                          .split('$review.public_source').join((feedback.source === 'public'?'display:block;':'display:none;'))
     459                                          .split('$review.mobile_source').join((feedback.source === 'mobile'?'display:block;':'display:none;'))
    277460                                          .split('$review.gpntype').join(data.gpntype)
    278461                                          .split('$review.gpnvalue').join(data.gpnvalue)
     
    295478    _jQuery('.rateit-cool-send-feedback').delegate('a', 'click', function(e){
    296479      e.preventDefault();
    297       var gpntype = _jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=gpntype]').val(),
    298           gpnvalue = _jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=gpnvalue]').val(),
    299           language = _jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=language]').val(),
     480      var _form = _jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']'),
     481          gpntype = _form.find('[name=gpntype]').val(),
     482          gpnvalue = _form.find('[name=gpnvalue]').val(),
     483          language = _form.find('[name=language]').val(),
     484          detail1 = parseInt(_form.find('[name=detail1]').val()),
     485          detail2 = parseInt(_form.find('[name=detail2]').val()),
     486          detail3 = parseInt(_form.find('[name=detail3]').val()),
     487          detail4 = parseInt(_form.find('[name=detail4]').val()),
     488          detail = (detail1 + detail2 + detail3 + detail4),
    300489          feedbackElement = {
    301             stars: parseInt(_jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=stars]').val()),
    302             title: _jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=feedbackTitle]').val(),
    303             content: _jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=feedbackContent]').val(),
    304             recommend: (_jQuery('form[name=' + _jQuery(this).attr('data-formname') + ']').find('[name=recommend]').is(':checked')?1:0)
    305           },
    306           destinationElement = _jQuery(this);
    307 
    308       if (gpntype && gpnvalue && language && feedbackElement.title !== '' && feedbackElement.content !== '' && feedbackElement.stars > 0) {
     490            stars: parseInt(_form.find('[name=stars]').val()),
     491            title: _form.find('[name=feedbackTitle]').val(),
     492            source: _form.find('[name=source]').val(),
     493            content: _form.find('[name=feedbackContent]').val(),
     494            recommend: (_form.find('[name=recommend]').is(':checked')?1:0),
     495            details: {
     496              detail1: detail1,
     497              detail2: detail2,
     498              detail3: detail3,
     499              detail4: detail4
     500            }
     501          },
     502          destinationElement = _jQuery(this),
     503          securitytext = _form.find('[name=securityText]').val(),
     504          formOk = true;
     505
     506      if (detail > 0) {
     507        feedbackElement.stars = (detail / ((detail1 > 0?1:0) + (detail2 > 0?1:0) + (detail3 > 0?1:0) + (detail4 > 0?1:0)));
     508      }
     509      if (securitytext !== undefined) {
     510        formOk = (securitytext === _securityText);
     511        if (!formOk) {
     512          _form.find('[name=securityText]').addClass('rate-it-cool-error');
     513        }
     514      }
     515      if (formOk && gpntype && gpnvalue && language && feedbackElement.title !== '' && feedbackElement.content !== '' && feedbackElement.stars > 0) {
    309516        _jQuery.ajax({
    310517          url : _server + '/feedback/' + gpntype + '/' + gpnvalue + '/' + language,
     
    348555    _jQuery('.rate-it-cool-feedback-form').delegate('.oneStars', 'click', function(e) {
    349556      e.preventDefault();
    350       _jQuery(this).parents('form').find('.rate-it-cool-review-summary').attr('style','');
     557      _jQuery(this).parents('tr').find('.rate-it-cool-review-summary').attr('style','');
    351558      _jQuery(this).find('.rate-it-cool-review-summary').attr('style','width:100%;');
    352       _jQuery(this).parents('form').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
    353       _jQuery(this).parents('form').find('[name=stars]').val(2);
    354       _jQuery(this).parents('form').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
     559      _jQuery(this).parents('tr').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
     560      _jQuery(this).parents('tr').find('input.stars').val(1);
     561      _jQuery(this).parents('tr').find('[name=stars]').val(1);
     562      _jQuery(this).parents('tr').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
    355563    });
    356564
    357565    _jQuery('.rate-it-cool-feedback-form').delegate('.twoStars', 'click', function(e) {
    358566      e.preventDefault();
    359       _jQuery(this).parents('form').find('.rate-it-cool-review-summary').attr('style','');
     567      _jQuery(this).parents('tr').find('.rate-it-cool-review-summary').attr('style','');
    360568      _jQuery(this).find('.rate-it-cool-review-summary').attr('style','width:100%;');
    361       _jQuery(this).parents('form').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
    362       _jQuery(this).parents('form').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
    363       _jQuery(this).parents('form').find('[name=stars]').val(2);
    364       _jQuery(this).parents('form').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
     569      _jQuery(this).parents('tr').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
     570      _jQuery(this).parents('tr').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
     571      _jQuery(this).parents('tr').find('input.stars').val(2);
     572      _jQuery(this).parents('tr').find('[name=stars]').val(2);
     573      _jQuery(this).parents('tr').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
    365574    });
    366575
    367576    _jQuery('.rate-it-cool-feedback-form').delegate('.threeStars', 'click', function(e) {
    368577      e.preventDefault();
    369       _jQuery(this).parents('form').find('.rate-it-cool-review-summary').attr('style','');
     578      _jQuery(this).parents('tr').find('.rate-it-cool-review-summary').attr('style','');
    370579      _jQuery(this).find('.rate-it-cool-review-summary').attr('style','width:100%;');
    371       _jQuery(this).parents('form').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
    372       _jQuery(this).parents('form').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
    373       _jQuery(this).parents('form').find('.threeStars .rate-it-cool-review-summary').attr('style','width:100%;');
    374       _jQuery(this).parents('form').find('[name=stars]').val(3);
    375       _jQuery(this).parents('form').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
     580      _jQuery(this).parents('tr').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
     581      _jQuery(this).parents('tr').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
     582      _jQuery(this).parents('tr').find('.threeStars .rate-it-cool-review-summary').attr('style','width:100%;');
     583      _jQuery(this).parents('tr').find('input.stars').val(3);
     584      _jQuery(this).parents('tr').find('[name=stars]').val(3);
     585      _jQuery(this).parents('tr').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
    376586    });
    377587
    378588    _jQuery('.rate-it-cool-feedback-form').delegate('.fourStars', 'click', function(e) {
    379589      e.preventDefault();
    380       _jQuery(this).parents('form').find('.rate-it-cool-review-summary').attr('style','');
     590      _jQuery(this).parents('tr').find('.rate-it-cool-review-summary').attr('style','');
    381591      _jQuery(this).find('.rate-it-cool-review-summary').attr('style','width:100%;');
    382       _jQuery(this).parents('form').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
    383       _jQuery(this).parents('form').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
    384       _jQuery(this).parents('form').find('.threeStars .rate-it-cool-review-summary').attr('style','width:100%;');
    385       _jQuery(this).parents('form').find('.fourStars .rate-it-cool-review-summary').attr('style','width:100%;');
    386       _jQuery(this).parents('form').find('[name=stars]').val(4);
    387       _jQuery(this).parents('form').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
     592      _jQuery(this).parents('tr').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
     593      _jQuery(this).parents('tr').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
     594      _jQuery(this).parents('tr').find('.threeStars .rate-it-cool-review-summary').attr('style','width:100%;');
     595      _jQuery(this).parents('tr').find('.fourStars .rate-it-cool-review-summary').attr('style','width:100%;');
     596      _jQuery(this).parents('tr').find('input.stars').val(4);
     597      _jQuery(this).parents('tr').find('[name=stars]').val(4);
     598      _jQuery(this).parents('tr').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
    388599    });
    389600
    390601    _jQuery('.rate-it-cool-feedback-form').delegate('.fiveStars', 'click', function(e) {
    391602      e.preventDefault();
    392       _jQuery(this).parents('form').find('.rate-it-cool-review-summary').attr('style','');
     603      _jQuery(this).parents('tr').find('.rate-it-cool-review-summary').attr('style','');
    393604      _jQuery(this).find('.rate-it-cool-review-summary').attr('style','width:100%;');
    394       _jQuery(this).parents('form').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
    395       _jQuery(this).parents('form').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
    396       _jQuery(this).parents('form').find('.threeStars .rate-it-cool-review-summary').attr('style','width:100%;');
    397       _jQuery(this).parents('form').find('.fourStars .rate-it-cool-review-summary').attr('style','width:100%;');
    398       _jQuery(this).parents('form').find('.fiveStars .rate-it-cool-review-summary').attr('style','width:100%;');
    399       _jQuery(this).parents('form').find('[name=stars]').val(5);
    400       _jQuery(this).parents('form').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
     605      _jQuery(this).parents('tr').find('.oneStars .rate-it-cool-review-summary').attr('style','width:100%;');
     606      _jQuery(this).parents('tr').find('.twoStars .rate-it-cool-review-summary').attr('style','width:100%;');
     607      _jQuery(this).parents('tr').find('.threeStars .rate-it-cool-review-summary').attr('style','width:100%;');
     608      _jQuery(this).parents('tr').find('.fourStars .rate-it-cool-review-summary').attr('style','width:100%;');
     609      _jQuery(this).parents('tr').find('.fiveStars .rate-it-cool-review-summary').attr('style','width:100%;');
     610      _jQuery(this).parents('tr').find('input.stars').val(5);
     611      _jQuery(this).parents('tr').find('[name=stars]').val(5);
     612      _jQuery(this).parents('tr').find('.rate-it-cool-star-text').html(_jQuery(this).attr('title'));
    401613    });
    402614    // fill stars on click end
     
    530742  };
    531743
     744  var _showFeedbackFormOnClick = function() {
     745    _jQuery('.rate-it-cool-product-feedbackform').delegate('a.rateit-cool-show-feedbackform-link','click',function(e) {
     746      e.preventDefault();
     747      _jQuery('.rate-it-cool-feedback-form').toggle('bounce');
     748    });
     749  };
     750
    532751  var _showMoreFeedbacksOnClick = function () {
    533752    _jQuery('.showMoreFeedbacks').on('click', function(e) {
     
    569788              // render each feedback
    570789              data.elements.forEach(function(feedback) {
     790                if (feedback.details == undefined) {
     791                  feedback.details = {};
     792                }
    571793                // create elemnt from template
    572794                var oneFeedback = templateOneFeedback;
    573795                oneFeedback = oneFeedback.replace('$review.stars', (feedback.stars * 20))
    574                                           .replace('$review.time', new Date(feedback.time).toLocaleString())
     796                                          .replace('$review.time', new Date(feedback.time).toLocaleDateString())
    575797                                          .replace('$review.title', feedback.title)
    576798                                          .replace('$review.content', feedback.content)
     
    578800                                          .split('$review.gpntype').join(data.gpntype)
    579801                                          .split('$review.gpnvalue').join(data.gpnvalue)
     802                                          .split('$review.detail.show').join( (feedback.details !== undefined && feedback.details.detail1 !== undefined?'':'display:none;'))
     803                                          .replace('$details.detail1.display', (feedback.details == undefined || feedback.details.detail1 == undefined ? 'display:none;':''))
     804                                          .replace('$details.detail2.display', (feedback.details == undefined || feedback.details.detail2 == undefined ? 'display:none;':''))
     805                                          .replace('$details.detail3.display', (feedback.details == undefined || feedback.details.detail3 == undefined ? 'display:none;':''))
     806                                          .replace('$details.detail4.display', (feedback.details == undefined || feedback.details.detail4 == undefined ? 'display:none;':''))
     807                                          .replace('$details.detail1.title', (_labels.detail1 !== undefined ? _labels.detail1:''))
     808                                          .replace('$details.detail2.title', (_labels.detail2 !== undefined ? _labels.detail2:''))
     809                                          .replace('$details.detail3.title', (_labels.detail3 !== undefined ? _labels.detail3:''))
     810                                          .replace('$details.detail4.title', (_labels.detail4 !== undefined ? _labels.detail4:''))
     811                                          .split('$review.detail.detail1').join( (feedback.details.detail1 !== undefined?(feedback.details.detail1*20):0))
     812                                          .split('$review.detail.detail2').join( (feedback.details.detail2 !== undefined?(feedback.details.detail2*20):0))
     813                                          .split('$review.detail.detail3').join( (feedback.details.detail3 !== undefined?(feedback.details.detail3*20):0))
     814                                          .split('$review.detail.detail4').join( (feedback.details.detail4 !== undefined?(feedback.details.detail4*20):0))
     815                                          .split('$review.source').join(feedback.source)
     816                                          .split('$review.verified_source').join((feedback.source === 'verified'?'display:block;':'display:none;'))
     817                                          .split('$review.public_source').join((feedback.source === 'public'?'display:block;':'display:none;'))
     818                                          .split('$review.mobile_source').join((feedback.source === 'mobile'?'display:block;':'display:none;'))
    580819                                          .split('$review.language').join(feedback.language + '_' + feedback.region)
    581820                                          .split('$review.positive').join(feedback.positive)
     
    610849    _showMoreFeedbacksOnClick();
    611850    _sendIncorrectOnClick();
    612 
     851    _showFeedbackFormOnClick();
     852    _jQuery('.rate-it-cool-show-stars').on('click',function(e) {
     853      e.preventDefault();
     854      _jQuery('.rate-it-cool-stars-detail-table').toggle('bounce');
     855    });
    613856    _openFeedbackForm();
     857
    614858  }
    615859
     
    618862      _username = params.username;
    619863      _password = params.password;
     864      _securityText = params.securitytext;
    620865      _limit = params.limit;
    621866      if (params.noConflict) {
     
    635880  username: rateitcool_settings.username,
    636881  password: rateitcool_settings.apikey,
     882  securitytext: rateitcool_settings.securitytext,
    637883  limit: 3,
    638884  noConflict: false
  • rateitcool/trunk/classes/class-wc-rateitcool-export-reviews.php

    r1253364 r1298994  
    9292        'language',
    9393        'stars',
    94         'costbenefit',
    95         'design',
    96         'workmanship',
    97         'description',
    98         'details-total',
    9994        'positive',
    10095        'negative',
    10196        'recommend',
     97        'status',
    10298        'time',
    103         'status'
     99        'category',
     100        'detail1',
     101        'detail2',
     102        'detail3',
     103        'detail4'
    104104      );
    105105    }
     
    137137        $current_review['language'] = $settings['language_code'];
    138138        $current_review['stars'] = $value->stars;
    139         $current_review['costbenefit'] = 0;
    140         $current_review['design'] = 0;
    141         $current_review['workmanship'] = 0;
    142         $current_review['description'] = 0;
    143         $current_review['details-total'] = 0;
    144139        $current_review['positive'] = 0;
    145140        $current_review['negative'] = 0;
  • rateitcool/trunk/lib/rateitcool-api/RateItCool.php

    r1250160 r1298994  
    88class RateItCool {
    99
    10     const VERSION = '0.0.1';
    11       const TIMEOUT = 5;
    12     //protected static $username, $apikey, $serverapikey, $base_uri = 'https://api.rateit.cool';
    13     protected static $username, $apikey, $serverapikey, $base_uri = 'http://localhost:8080';
    14     protected $request;
     10  const VERSION = '0.0.1';
     11  const TIMEOUT = 5;
     12  protected static $username, $apikey, $serverapikey, $base_uri = 'https://api.rateit.cool';
     13  //protected static $username, $apikey, $serverapikey, $base_uri = 'http://localhost:8080';
     14  protected $request;
    1515
    16     public function __construct($settings) {
    17         $this->set_username($settings['username']);
    18 
    19         $this->set_serverapikey($settings['serverapikey']);
    20         $this->set_apikey($settings['apikey']);
    21     }
     16  public function __construct($settings) {
     17    $this->set_username($settings['username']);
     18    $this->set_serverapikey($settings['serverapikey']);
     19    $this->set_apikey($settings['apikey']);
     20  }
    2221
    2322    protected function set_request_method($method, $vars) {
    24         switch (strtoupper($method)) {
    25             case 'HEAD':
    26                 curl_setopt($this->request, CURLOPT_NOBODY, true);
    27                 break;
    28             case 'GET':
    29                 curl_setopt($this->request, CURLOPT_HTTPGET, true);
    30                 break;
    31             case 'POST':
    32                 curl_setopt($this->request, CURLOPT_POSTFIELDS, $vars);
    33                 curl_setopt($this->request, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-length: '.strlen($vars)));
    34                 curl_setopt($this->request, CURLOPT_POST, true);
    35                 break;
    36             default:
    37                 curl_setopt($this->request, CURLOPT_CUSTOMREQUEST, $method);
    38         }
     23      switch (strtoupper($method)) {
     24        case 'HEAD':
     25            curl_setopt($this->request, CURLOPT_NOBODY, true);
     26            break;
     27        case 'GET':
     28            curl_setopt($this->request, CURLOPT_HTTPGET, true);
     29            break;
     30        case 'POST':
     31            curl_setopt($this->request, CURLOPT_POSTFIELDS, $vars);
     32            curl_setopt($this->request, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-length: '.strlen($vars)));
     33            curl_setopt($this->request, CURLOPT_POST, true);
     34            break;
     35        default:
     36            curl_setopt($this->request, CURLOPT_CUSTOMREQUEST, $method);
     37      }
    3938    }
    4039
    4140    protected function set_request_options($url) {
    42         curl_setopt($this->request, CURLOPT_URL, $url);
     41    curl_setopt($this->request, CURLOPT_URL, $url);
    4342
    44         $headers = array(
    45             'Content-Type:application/json',
    46             'X-Api-Version: 1.0.0',
    47             'X-Api-Key: ' . self::$apikey,
    48             'Origin: localhost',
    49             'Authorization: Basic '. base64_encode(self::$username . ':' . self::$serverapikey)
    50         );
     43    $headers = array(
     44        'Content-Type:application/json',
     45        'X-Api-Version: 1.0.0',
     46        'X-Api-Key: ' . self::$apikey,
     47        'Origin: localhost',
     48        'Authorization: Basic '. base64_encode(self::$username . ':' . self::$serverapikey)
     49    );
    5150
    52         # Set some default CURL options
    53         curl_setopt($this->request, CURLOPT_HTTPHEADER, $headers);
    54         curl_setopt($this->request, CURLOPT_RETURNTRANSFER, true);
     51    # Set some default CURL options
     52    curl_setopt($this->request, CURLOPT_HTTPHEADER, $headers);
     53    curl_setopt($this->request, CURLOPT_RETURNTRANSFER, true);
    5554
    56         curl_setopt($this->request, CURLOPT_FOLLOWLOCATION, true);
    57         curl_setopt($this->request, CURLOPT_SSL_VERIFYPEER, false);
    58         curl_setopt($this->request, CURLOPT_SSL_VERIFYHOST, false);
    59         curl_setopt($this->request, CURLOPT_CONNECTTIMEOUT ,self::TIMEOUT);
     55    //curl_setopt($this->request, CURLOPT_FOLLOWLOCATION, true);
     56    curl_setopt($this->request, CURLOPT_SSL_VERIFYPEER, false);
     57    curl_setopt($this->request, CURLOPT_SSL_VERIFYHOST, false);
     58    curl_setopt($this->request, CURLOPT_CONNECTTIMEOUT ,self::TIMEOUT);
     59  }
     60
     61  function request($method, $url, $vars = array()) {
     62    if (!empty($vars)) $vars = self::clean_array($vars);
     63      $url = self::$base_uri . $url;
     64      $this->error = '';
     65      $this->request = curl_init();
     66      if (is_array($vars)) {
     67        if($method == 'POST') {
     68            $vars = json_encode($vars);
     69        }
     70        else {
     71            $vars = http_build_query($vars, '', '&');
     72        }
     73      }
     74
     75      $this->set_request_method($method, $vars);
     76      $this->set_request_options($url);
     77      $response = curl_exec($this->request);
     78
     79      curl_close($this->request);
     80
     81      return self::process_response($response);
     82  }
     83
     84  protected function get($url, $vars = array()) {
     85    if (!empty($vars)) {
     86      $url .= (stripos($url, '?') !== false) ? '&' : '?';
     87      $url .= (is_string($vars)) ? $vars : http_build_query($vars, '', '&');
    6088    }
     89    return $this->request('GET', $url);
     90  }
    6191
    62     function request($method, $url, $vars = array()) {
    63         if (!empty($vars)) $vars = self::clean_array($vars);
    64         $url = self::$base_uri . $url;
    65         $this->error = '';
    66         $this->request = curl_init();
    67         if (is_array($vars)) {
    68             if($method == 'POST') {
    69                 $vars = json_encode($vars);
    70             }
    71             else {
    72                 $vars = http_build_query($vars, '', '&');
    73             }
    74         }
     92  protected function delete($url, $vars = array()) {
     93    return $this->request('DELETE', $url, $vars);
     94  }
    7595
    76         $this->set_request_method($method, $vars);
    77         $this->set_request_options($url);
    78         $response = curl_exec($this->request);
     96  protected function post($url, $vars = array()) {
     97    return $this->request('POST', $url, $vars);
     98  }
    7999
    80         curl_close($this->request);
     100  protected function put($url, $vars = array()) {
     101    return $this->request('PUT', $url, $vars);
     102  }
    81103
    82         return self::process_response($response);
     104  protected static function process_response($response) {
     105    if ($response != NULL) {
     106      try {
     107        $response = json_decode($response, true);
     108      } catch (Exception $e) {
     109      }
    83110    }
     111      return $response;
     112  }
    84113
    85     protected function get($url, $vars = array()) {
    86         if (!empty($vars)) {
    87             $url .= (stripos($url, '?') !== false) ? '&' : '?';
    88             $url .= (is_string($vars)) ? $vars : http_build_query($vars, '', '&');
    89         }
    90         return $this->request('GET', $url);
     114
     115  public function getReviews($product) {
     116      return $this->get('/feedback/' . $product['gpntype'] . '/' . $product['gpnvalue'] . '/' . $product['language'], array('limit' => 5));
     117  }
     118
     119  public function set_username($username) {
     120    if ($username != null) {
     121      self::$username = $username;
    91122    }
     123  }
    92124
    93     protected function delete($url, $vars = array()) {
    94         return $this->request('DELETE', $url, $vars);
     125  public function set_serverapikey($serverapikey) {
     126    if ($serverapikey != null) {
     127      self::$serverapikey = $serverapikey;
    95128    }
     129  }
    96130
    97     protected function post($url, $vars = array()) {
    98         return $this->request('POST', $url, $vars);
     131  public function set_apikey($apikey) {
     132    if ($apikey != null) {
     133      self::$apikey = $apikey;
    99134    }
     135  }
    100136
    101     protected function put($url, $vars = array()) {
    102         return $this->request('PUT', $url, $vars);
     137  protected static function build_request(array $params, array $request_params) {
     138    $request = array();
     139    foreach ($params as $key => $value) {
     140      if (array_key_exists($key, $request_params)) {
     141        $request[$value] = $request_params[$key];
     142      }
    103143    }
     144    return $request;
     145  }
    104146
    105     protected static function process_response($response) {
    106       if ($response != NULL) {
    107         try {
    108           $response = json_decode($response, true);
    109         } catch (Exception $e) {
     147  protected static function clean_array(array $array){
     148
     149    foreach( $array as $key => $value ) {
     150      if( is_array( $value ) ) {
     151        foreach( $value as $key2 => $value2 ) {
     152          if( empty( $value2 ) )
     153            unset( $array[ $key ][ $key2 ] );
    110154        }
    111155      }
    112           return $response;
     156      if( empty( $array[ $key ] ) )
     157        unset( $array[ $key ] );
    113158    }
    114 
    115 
    116     public function getReviews($product) {
    117         return $this->get('/feedback/' . $product['gpntype'] . '/' . $product['gpnvalue'] . '/' . $product['language'], array('limit' => 5));
    118     }
    119 
    120     public function set_username($username) {
    121         if ($username != null) {
    122             self::$username = $username;
    123         }
    124     }
    125 
    126     public function set_serverapikey($serverapikey) {
    127         if ($serverapikey != null) {
    128             self::$serverapikey = $serverapikey;
    129         }
    130     }
    131 
    132     public function set_apikey($apikey) {
    133         if ($apikey != null) {
    134             self::$apikey = $apikey;
    135         }
    136     }
    137 
    138     protected static function build_request(array $params, array $request_params) {
    139         $request = array();
    140         foreach ($params as $key => $value) {
    141             if (array_key_exists($key, $request_params)) {
    142                 $request[$value] = $request_params[$key];
    143             }
    144         }
    145         return $request;
    146     }
    147 
    148     protected static function clean_array(array $array){
    149 
    150         foreach( $array as $key => $value ) {
    151             if( is_array( $value ) ) {
    152                 foreach( $value as $key2 => $value2 ) {
    153                     if( empty( $value2 ) )
    154                         unset( $array[ $key ][ $key2 ] );
    155                 }
    156             }
    157             if( empty( $array[ $key ] ) )
    158                 unset( $array[ $key ] );
    159         }
    160         return $array;
    161     }
     159    return $array;
     160  }
    162161
    163162}
  • rateitcool/trunk/readme.txt

    r1253364 r1298994  
    44Requires at least: 3.5.1
    55Tested up to: 4.1
    6 Stable tag: 1.0.1
     6Stable tag: 1.0.2
    77License: GPLv2
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    1919
    2020Use it everywhere. Integrate the rateit.cool service at your homepage, your shop or app. Show the product reviews everywhere you want.
     21
     22= What is rateit.cool really all about? =
     23
     24Watch this video on [youtube](https://www.youtube.com/watch?v=5k9tJmm3u08).
    2125
    2226= The main features of rateit.cool =
     
    76802. Productlist element with reviews counts and average review value.
    77813. Reviews counts and average review value at the product detail page.
    78 4. Product reviews on a example tab.
    79 5. Product review form at order history.
    80 5. Shop review form at order history.
     824. Show Detail Reviews counts and average review value at the product detail page.
     835. Product reviews on a example tab.
     846. Product review form on a example tab.
     857. Product review form at order history.
     868. Shop review form at order history.
    8187
    8288== Changelog ==
     
    8793= 1.0.1 - 09/24/2015 =
    8894* Replace EAN with GTIN
     95
     96= 1.0.2 - 12/02/2015 =
     97* Product detail review
     98* Public product review form
  • rateitcool/trunk/templates/wc-rateitcool-settings.php

    r1253364 r1298994  
    3232    $apikey = $rateitcool_settings['apikey'];
    3333    $serverapikey = $rateitcool_settings['serverapikey'];
     34    $securitytext = $rateitcool_settings['securitytext'];
    3435
    3536    $language_code = $rateitcool_settings['language_code'];
     
    6465                                 <td><input id='serverapikey' type='text'  name='rateitcool_serverapikey' value='$serverapikey'  /></td>
    6566                             </tr>
     67                             <tr valign='top'>
     68                                 <th scope='row'><div>Securitytext:</div></th>
     69                                 <td><input id='serverapikey' type='text'  name='rateitcool_securitytext' value='$securitytext'  /></td>
     70                             </tr>
    6671                             </fieldset>
    6772                             <fieldset>
     
    132137                     </tr>
    133138                             <tr valign='top'>
     139                       <th scope='row'><div>Title of Overview table:</div></th>
     140                       <td><input type='text' name='review_overview_title' value='" . $rateitcool_settings['review_overview_title'] . "' /></td>
     141                     </tr>
     142                             <tr valign='top'>
     143                       <th scope='row'><div>Title of Detail table:</div></th>
     144                       <td><input type='text' name='review_detail_title' value='" . $rateitcool_settings['review_detail_title'] . "' /></td>
     145                     </tr>
     146
     147                             <tr valign='top'>
     148                                <th scope='row'><div>Label for 'verified customer':</div></th>
     149                                <td><input type='text' name='verified' value='" . $rateitcool_settings['verified'] . "' /></td>
     150                             </tr>
     151                             <tr valign='top'>
     152                       <th scope='row'><div>Label for 'public review':</div></th>
     153                       <td><input type='text' name='public' value='" . $rateitcool_settings['public'] . "' /></td>
     154                     </tr>
     155                             <tr valign='top'>
     156                       <th scope='row'><div>Label for 'mobile app review':</div></th>
     157                       <td><input type='text' name='mobile' value='" . $rateitcool_settings['mobile'] . "' /></td>
     158                     </tr>
     159                             <tr valign='top'>
    134160                       <th scope='row'><div>Show only five stars:</div></th>
    135161                       <td><input type='text' name='show_only_five_stars' value='" . $rateitcool_settings['show_only_five_stars'] . "' /></td>
     
    199225                                <td><input type='text' name='report_this_review' value='" . $rateitcool_settings['report_this_review'] . "' /></td>
    200226                             </tr>
     227                             <tr valign='top'>
     228                             <th scope='row'><div>Write product review title (public view):</div></th>
     229                             <td><input type='text' name='write_a_product_review' value='" . $rateitcool_settings['write_a_product_review'] . "' /></td>
     230                            </tr>
    201231                            <tr valign='top'>
    202232                             <th scope='row'><div>Write product review title:</div></th>
     
    232262                             </tr>
    233263                             <tr valign='top'>
     264                              <th scope='row'><div>Review title global:</div></th>
     265                              <td><input type='text' name='review_global' value='" . $rateitcool_settings['review_global'] . "' /></td>
     266                             </tr>
     267                             <tr valign='top'>
    234268                                <th scope='row'><div>Placeholder review title:</div></th>
    235269                                <td><input type='text' name='placeholder_review_title' value='" . $rateitcool_settings['placeholder_review_title'] . "' /></td>
     
    266300                              <th scope='row'><div>Write shop review hint:</div></th>
    267301                              <td><input type='text' name='write_shop_review_hint' value='" . $rateitcool_settings['write_shop_review_hint'] . "' /></td>
     302                             </tr>
     303
     304                             <tr valign='top'>
     305                              <th scope='row'><div>Please fill in the fellowing text:</div></th>
     306                              <td><input type='text' name='please_fill_in_the_fellowing_text' value='" . $rateitcool_settings['please_fill_in_the_fellowing_text'] . "' /></td>
    268307                             </tr>
    269308                             </fieldset>
     
    294333        'widget_location' => $_POST['rateitcool_widget_location'],
    295334        'language_code' => $_POST['rateitcool_widget_language_code'],
     335        'securitytext' => $_POST['rateitcool_securitytext'],
    296336        'widget_tab_name' => $_POST['rateitcool_widget_tab_name'],
    297337        'bottom_line_enabled_product' => isset($_POST['rateitcool_bottom_line_enabled_product']) ? true : false,
     
    303343
    304344        'translation_review_template_title' => isset($_POST['translation_review_template_title']) ? $_POST['translation_review_template_title'] : $current_settings['translation_review_template_title'],
     345        'review_overview_title' => isset($_POST['review_overview_title']) ? $_POST['review_overview_title'] : $current_settings['review_overview_title'],
     346        'review_detail_title' => isset($_POST['review_detail_title']) ? $_POST['review_detail_title'] : $current_settings['review_detail_title'],
     347        'verified' => isset($_POST['verified']) ? $_POST['verified'] : $current_settings['verified'],
     348        'public' => isset($_POST['public']) ? $_POST['public'] : $current_settings['public'],
     349        'mobile' => isset($_POST['mobile']) ? $_POST['mobile'] : $current_settings['remobileview_detail_title'],
    305350        'show_only_five_stars' => isset($_POST['show_only_five_stars']) ? $_POST['show_only_five_stars'] : $current_settings['show_only_five_stars'],
    306351        'show_only_four_stars' => isset($_POST['show_only_four_stars']) ? $_POST['show_only_four_stars'] : $current_settings['show_only_four_stars'],
     
    320365        'no_helpful_text' => isset($_POST['no_helpful_text']) ? $_POST['no_helpful_text'] : $current_settings['no_helpful_text'],
    321366        'report_this_review' => isset($_POST['report_this_review']) ? $_POST['report_this_review'] : $current_settings['report_this_review'],
    322 
     367        'write_a_product_review' => isset($_POST['write_a_product_review']) ? $_POST['write_a_product_review'] : $current_settings['write_a_product_review'],
    323368        'write_product_review_title' => isset($_POST['write_product_review_title']) ? $_POST['write_product_review_title'] : $current_settings['write_product_review_title'],
    324369        'write_product_review_link' => isset($_POST['write_product_review_link']) ? $_POST['write_product_review_link'] : $current_settings['write_product_review_link'],
     
    329374        '4_stars_cool' => isset($_POST['4_stars_cool']) ? $_POST['4_stars_cool'] : $current_settings['4_stars_cool'],
    330375        '5_stars_coolest' => isset($_POST['5_stars_coolest']) ? $_POST['5_stars_coolest'] : $current_settings['5_stars_coolest'],
     376        'review_global' => isset($_POST['review_global']) ? $_POST['review_global'] : $current_settings['review_global'],
    331377        'placeholder_review_title' => isset($_POST['placeholder_review_title']) ? $_POST['placeholder_review_title'] : $current_settings['placeholder_review_title'],
    332378        'placeholder_review_content' => isset($_POST['placeholder_review_content']) ? $_POST['placeholder_review_content'] : $current_settings['placeholder_review_content'],
     
    338384        'write_shop_review_title' => isset($_POST['write_shop_review_title']) ? $_POST['write_shop_review_title'] : $current_settings['write_shop_review_title'],
    339385        'write_shop_review_hint' => isset($_POST['write_shop_review_hint']) ? $_POST['write_shop_review_hint'] : $current_settings['write_shop_review_hint'],
    340 
     386        'please_fill_in_the_fellowing_text' => isset($_POST['please_fill_in_the_fellowing_text']) ? $_POST['please_fill_in_the_fellowing_text'] : $current_settings['please_fill_in_the_fellowing_text'],
    341387    );
    342388    update_option( 'rateitcool_settings', $new_settings );
  • rateitcool/trunk/wc_rateitcool.php

    r1253364 r1298994  
    8282               '<input type="hidden" name="stars" value="0"/> ' .
    8383        '<div class="ratings">' .
    84          '<div class="star-rating oneStars" style="width: 17px;float:left;" title="' . $settings['1_stars_not_really_ok'] . '">' .
    85            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    86          '</div>' .
    87          '<div class="star-rating twoStars" style="width: 17px;float:left;" title="' . $settings['2_stars_hm_ok'] . '">' .
    88            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    89          '</div>' .
    90          '<div class="star-rating threeStars" style="width: 17px;float:left;" title="' . $settings['3_stars_ok'] . '">' .
    91            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    92          '</div>' .
    93          '<div class="star-rating fourStars" style="width: 17px;float:left;" title="' . $settings['4_stars_cool'] . '">' .
    94            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    95          '</div>' .
    96          '<div class="star-rating fiveStars" style="width: 17px;float:left;" title="' . $settings['5_stars_coolest'] . '">' .
     84         '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">' .
     85           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     86         '</div>' .
     87         '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">' .
     88           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     89         '</div>' .
     90         '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">' .
     91           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     92         '</div>' .
     93         '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">' .
     94           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     95         '</div>' .
     96         '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">' .
    9797           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    9898         '</div>' .
     
    143143               '<input type="hidden" name="stars" value="0"/> ' .
    144144        '<div class="ratings">' .
    145          '<div class="star-rating oneStars" style="width: 17px;float:left;" title="' . $settings['1_stars_not_really_ok'] . '">' .
    146            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    147          '</div>' .
    148          '<div class="star-rating twoStars" style="width: 17px;float:left;" title="' . $settings['2_stars_hm_ok'] . '">' .
    149            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    150          '</div>' .
    151          '<div class="star-rating threeStars" style="width: 17px;float:left;" title="' . $settings['3_stars_ok'] . '">' .
    152            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    153          '</div>' .
    154          '<div class="star-rating fourStars" style="width: 17px;float:left;" title="' . $settings['4_stars_cool'] . '">' .
    155            '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    156          '</div>' .
    157          '<div class="star-rating fiveStars" style="width: 17px;float:left;" title="' . $settings['5_stars_coolest'] . '">' .
     145         '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">' .
     146           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     147         '</div>' .
     148         '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">' .
     149           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     150         '</div>' .
     151         '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">' .
     152           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     153         '</div>' .
     154         '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">' .
     155           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
     156         '</div>' .
     157         '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">' .
    158158           '<span class="rate-it-cool-review-summary" style="width: 0;"></span>' .
    159159         '</div>' .
     
    161161       '<span class="rate-it-cool-star-text"></span>' .
    162162       '<div class="feedback-title">' .
    163          '<input type="text" style="padding: 10px 0 10px 5px; width: 99%" name="feedbackTitle" placeholder="' . $settings['placeholder_review_title'] . '" />' .
     163         '<input type="text" style="padding: 10px 0 10px 5px; width: 99%;" name="feedbackTitle" placeholder="' . $settings['placeholder_review_title'] . '" />' .
    164164       '</div>' .
    165165       '<div class="feedback-content">' .
     
    234234
    235235function wc_rateitcool_show_widget() {
     236
    236237    $product = get_product();
    237     if($product->post->comment_status == 'open') {
     238    if($product->post->post_status == 'publish') {
    238239        $product_data = wc_rateitcool_get_product_data($product);
    239240        $postData = $product->get_post_data();
     
    242243        $rateitcool_api = new RateItCool($settings);
    243244        $rateitcool_reviews = $rateitcool_api->getReviews($product_data);
     245
    244246        $rateitcool_div = "<div class='rate-it-cool-product-feedbacks'
    245247                    data-gpntype='".$product_data['gpntype']."'
     
    251253                $rateitcool_div .= '<div itemscope itemtype="http://schema.org/Review">';
    252254                $timeObj = new DateTime($review['time']);
    253                 $rateitcool_div .= '<meta itemprop="datePublished" content="' . date_i18n( 'Y-m-d', strtotime( '11/15-1976' ) ) . '">' . date_i18n( get_option( 'date_format' ), strtotime( '11/15-1976' ) );
     255                $rateitcool_div .= '<meta itemprop="datePublished" content="' . date_i18n( 'Y-m-d', $timeObj->getTimestamp() ) . '">' . date_i18n( get_option( 'date_format' ), $timeObj->getTimestamp() );
    254256                $rateitcool_div .= '<div itemprop="itemReviewed" itemscope itemtype="http://schema.org/Product">';
    255257                $rateitcool_div .= '<span itemprop="name">' . $postData->post_title . '</span>';
     
    272274        $rateitcool_div .= "</div>";
    273275        echo $rateitcool_div;
    274         echo wc_rateitcool_get_feedback_template();
     276        echo wc_rateitcool_get_feedback_template($product);
     277
    275278    }
    276279}
     
    278281function wc_rateitcool_show_qa_bottomline() {
    279282    $product_data = wc_rateitcool_get_product_data(get_product());
    280     echo "QA BLA <div class='yotpo QABottomLine'
     283    echo "<div class='yotpo QABottomLine'
    281284         data-appkey='".$product_data['app_key']."'
    282285         data-product-id='".$product_data['id']."'></div>";
     
    297300            echo ' data-gpntype="' . $settings['username'] . '"';
    298301            echo ' data-gpnvalue="' . get_post_meta( $product->id, '_sku', true ) . '"';
     302      echo ' data-language="'. implode('_', explode('-', get_bloginfo('language'))) .'"';
    299303        } else {
    300304            echo ' data-gpntype="' . $settings['rateitcool_gpntype'] . '"';
    301305            echo ' data-gpnvalue="' . $gpn .'"';
     306      echo ' data-language="'. implode('_', explode('-', get_bloginfo('language'))) .'"';
    302307        }
    303308        echo '><span class="star-rating"><span class="rate-it-cool-review-summary" style="width:0%"></span></span> (<span class="rate-it-cool-review-counts">0</span>)</div>';
     
    320325            echo ' data-gpntype="' . $settings['username'] . '"';
    321326            echo ' data-gpnvalue="' . get_post_meta( $product->id, '_sku', true ) . '"';
     327      echo ' data-language="'. implode('_', explode('-', get_bloginfo('language'))) .'"';
    322328        } else {
    323329            echo ' data-gpntype="' . $settings['rateitcool_gpntype'] . '"';
    324330            echo ' data-gpnvalue="' . $gpn .'"';
    325         }
    326         echo '><span class="star-rating"><span class="rate-it-cool-review-summary" style="width:0%"></span></span> (<span class="rate-it-cool-review-counts">0</span>)</div>';
     331      echo ' data-language="'. implode('_', explode('-', get_bloginfo('language'))) .'"';
     332        }
     333        echo '><span class="star-rating"><span class="rate-it-cool-review-summary" style="width:0%"></span></span> (<span class="rate-it-cool-review-counts">0</span>)';
     334    echo '<span class="rate-it-cool-show-stars" style="display:none;">+</span>';
     335    echo '</div>';
     336    echo '<div class="ratings rate-it-cool-stars-detail-table" style="display: none;">' .
     337          '<table style="width:100%;">' .
     338    '<tbody>' .
     339      '<tr>' .
     340        '<th colspan="2">' . $settings['review_overview_title'] . '</th>' .
     341      '</tr>' .
     342    '</tbody>' .
     343    '<tr>' .
     344      '<td class="stars">'.
     345        '<div class="star-rating">'.
     346          '<span class="rating" style="width: 100%;"></span>'.
     347        '</div>'.
     348      '</td>'.
     349      '<td>$review.star5</td>'.
     350    '</tr>'.
     351    '<tr>'.
     352      '<td class="stars">'.
     353        '<div class="star-rating">'.
     354          '<span class="rating" style="width: 75%;"></span>'.
     355        '</div>'.
     356      '</td>'.
     357      '<td>$review.star4</td>'.
     358    '</tr>'.
     359    '<tr>'.
     360      '<td class="stars">'.
     361        '<div class="star-rating">'.
     362          '<span class="rating" style="width: 55%;"></span>'.
     363        '</div>'.
     364      '</td>'.
     365      '<td>$review.star3</td>'.
     366    '</tr>'.
     367    '<tr>'.
     368      '<td class="stars">'.
     369        '<div class="star-rating">'.
     370          '<span class="rating" style="width: 35%;"></span>'.
     371        '</div>'.
     372      '</td>'.
     373      '<td>$review.star2</td>'.
     374    '</tr>'.
     375    '<tr>'.
     376      '<td class="stars">'.
     377        '<div class="star-rating">'.
     378          '<span class="rating" style="width: 20%;"></span>'.
     379        '</div>'.
     380      '</td>'.
     381      '<td>$review.star1</td>'.
     382    '</tr>'.
     383  '</table>'.
     384  '<table style="width:100%;$details.display">'.
     385    '<tbody>'.
     386      '<tr>'.
     387        '<th colspan="2">' . $settings['review_detail_title'] . ' ($details.total/$review.total)</th>'.
     388      '</tr>'.
     389    '</tbody>'.
     390    '<tr style="$details.detail1.display">'.
     391      '<td>$details.detail1.title</td>'.
     392      '<td class="stars">'.
     393        '<div class="star-rating">'.
     394          '<div class="rating" style="width: $review.details.detail1%;"></div>'.
     395        '</div>'.
     396      '</td>'.
     397    '</tr>'.
     398    '<tr style="$details.detail2.display">'.
     399      '<td>$details.detail2.title</td>'.
     400      '<td class="stars">'.
     401        '<div class="star-rating">'.
     402          '<div class="rating" style="width: $review.details.detail2%;"></div>'.
     403        '</div>'.
     404      '</td>'.
     405    '</tr>'.
     406    '<tr style="$details.detail3.display">'.
     407      '<td>$details.detail3.title</td>'.
     408      '<td class="stars">'.
     409        '<div class="star-rating">'.
     410          '<div class="rating" style="width: $review.details.detail3%;"></div>'.
     411        '</div>'.
     412      '</td>'.
     413    '</tr>'.
     414    '<tr style="$details.detail4.display">'.
     415      '<td>$details.detail4.title</td>'.
     416      '<td class="stars">'.
     417        '<div class="star-rating">'.
     418          '<div class="rating" style="width: $review.details.detail4%;"></div>'.
     419        '</div>'.
     420      '</td>'.
     421    '</tr>'.
     422  '</table>'.
     423'</div>';
    327424    }
    328425
     
    372469        $product_data['gpnvalue'] = $gpn;
    373470    }
    374     $product_data['language'] = $settings['language_code'];
     471    $product_data['language'] = implode('_', explode('-', get_bloginfo('language')));
    375472    if($settings['rateitcool_language_as_site'] == true) {
    376473        $product_data['language'] = implode('_', explode('-', get_bloginfo('language')));
     
    390487      'apikey' => '',
    391488        'serverapikey' => '',
     489    'securitytext' => '',
    392490      'widget_location' => 'tab',
    393491      'language_code' => implode('_', explode('-', get_bloginfo('language'))),
     
    399497      'disable_native_review_system' => true,
    400498      'native_star_ratings_enabled' => 'no',
    401 
     499    'write_a_product_review' => 'Write a product review',
    402500        'translation_review_template_title' => 'Reviews',
     501    'review_overview_title' => 'Overview',
     502    'review_detail_title' => 'Detail',
    403503        'show_only_five_stars' => 'Show only reviews with 5 stars',
    404504        'show_only_four_stars' => 'Show only reviews with 4 stars',
     
    418518        'no_helpful_text' => 'No',
    419519        'report_this_review' => 'Report this review.',
    420 
     520    'verified' => 'Verified Customer',
     521    'public' => 'Public Review',
     522    'mobile' => 'Mobile App Review',
    421523        'write_product_review_title' => 'Product Review for',
    422524        'write_product_review_link' => 'Write Product reviews',
    423525        'write_product_review_hint' => 'A product review contains the voting about the product itself. It contains not the voting about the shop, shipping and other things.',
    424         '1_stars_not_really_ok' => 'not really ok',
    425         '2_stars_hm_ok' => 'hm ok',
    426         '3_stars_ok' => 'ok',
    427         '4_stars_cool' => 'cool',
    428         '5_stars_coolest' => 'coolest',
     526        '1_stars_not_really_ok' => '1_stars_not_really_ok',
     527        '2_stars_hm_ok' => '2_stars_hm_ok',
     528        '3_stars_ok' => '3_stars_ok',
     529        '4_stars_cool' => '4_stars_cool',
     530        '5_stars_coolest' => '5_stars_coolest',
     531    'review_global' => 'Global',
    429532        'placeholder_review_title' => 'Title of the review',
    430533        'placeholder_review_content' => 'Content of the review',
     
    436539        'write_shop_review_title' => 'Review for this shop',
    437540        'write_shop_review_hint' => 'A shop review contains the voting about the shop itself, shipping and other things.',
    438 
     541    'please_fill_in_the_fellowing_text' => 'Please fill in the fellowing text',
    439542    );
    440543}
     
    464567}
    465568
    466 function wc_rateitcool_get_feedback_template() {
     569function wc_rateitcool_get_feedback_template($product) {
    467570    $settings = get_option('rateitcool_settings',wc_rateitcool_get_default_settings());
    468571    $template = '<div id="rate-it-cool-product-feedbacks-template" style="display:none;">' .
    469572      '<div class="feedbackElements">' .
    470573        '<div class="overview">' .
    471           $settings['translation_review_template_title'] .
     574          '<h3>' . $settings['translation_review_template_title'] . '</h3>'.
    472575          '<table class="feedbackOverview">' .
    473576            '<tr>' .
     
    532635            '</tr>' .
    533636          '</table>' .
    534         '</div>' .
     637        '<table class="rate-it-cool-detail-stars" style="$detail.show">' .
     638        '<thead>' .
     639          '<tr>' .
     640            '<th colspan="2">' . $settings['review_detail_title'] . ' ($details.total / $overview.total)</th>' .
     641          '</tr>' .
     642        '</thead>' .
     643        '<tr style="$details.detail1.display">' .
     644          '<td>$details.detail1.title</td>' .
     645          '<td class="ratings">' .
     646            '<div class="star-rating">' .
     647              '<span class="rating" style="width:$detail.detail1%;"></span>' .
     648            '</div>'.
     649          '</td>'.
     650        '</tr>'.
     651        '<tr style="$details.detail2.display">'.
     652          '<td>$details.detail2.title</td>'.
     653          '<td class="ratings">'.
     654            '<div class="star-rating">'.
     655              '<span class="rating" style="width:$detail.detail2%;"></span>'.
     656            '</div>'.
     657          '</td>'.
     658        '</tr>'.
     659        '<tr style="$details.detail3.display">'.
     660          '<td>$details.detail3.title</td>'.
     661          '<td class="ratings">'.
     662            '<div class="star-rating">'.
     663              '<span class="rating" style="width:$detail.detail3%;"></span>'.
     664            '</div>'.
     665          '</td>'.
     666        '</tr>'.
     667        '<tr style="$details.detail4.display">'.
     668          '<td>$details.detail4.title</td>'.
     669          '<td class="ratings">'.
     670            '<div class="star-rating">'.
     671              '<span class="rating" style="width:$detail.detail4%;"></span>'.
     672            '</div>'.
     673          '</td>'.
     674        '</tr>'.
     675      '</table>'.
     676      '<div class="clearfix"></div>'.
     677        '</div><hr/>' .
     678      '<div class="rate-it-cool-product-public-feedbackform">'.
     679      '<div class="rate-it-cool-product-feedbackform">'.
     680        '<a href="#" '.
     681        'class="rateit-cool-show-feedbackform-link" '.
     682        'title="'. $settings['write_a_product_review'] . '">'. $settings['write_a_product_review'] . '</a>'.
     683      '</div><hr/>'.
     684      '<div id="feedbackform" class="rate-it-cool-feedback-form" style="display:none;">'.
     685        '<h3>'. $settings['write_product_review_title'] . ' ' . $product->post->post_title . '</h3>' .
     686          '<form name="productDetailFeedbackform$gpnvalue">'.
     687            '<input type="hidden" name="gpntype" value="$gpntype"/>'.
     688            '<input type="hidden" name="gpnvalue" value="$gpnvalue"/>'.
     689            '<input type="hidden" name="source" value="public"/>'.
     690            '<input type="hidden" name="language" value="' . implode('_', explode('-', get_bloginfo('language'))). '"/>'.
     691            '<table>'.
     692              '<tr>'.
     693                '<td class="label second">' . $settings['review_global'] . '</td>'.
     694                '<td class="ratings">'.
     695                  '<span class="reviewStars">'.
     696                    '<input type="hidden" class="stars" name="stars" value="0"/>'.
     697                    '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">'.
     698                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     699                    '</div>'.
     700                    '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">'.
     701                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     702                    '</div>'.
     703                    '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">'.
     704                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     705                    '</div>'.
     706                    '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">'.
     707                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     708                    '</div>'.
     709                    '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">'.
     710                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     711                    '</div>'.
     712                  '</div>'.
     713                  '</span>'.
     714                '</td>'.
     715              '</tr>'.
     716              '<tr class="reviewDetail1" style="display:none;">'.
     717                '<td class="label"></td>'.
     718                '<td class="ratings">'.
     719                  '<span class="reviewStars">'.
     720                    '<input type="hidden" class="stars" name="detail1" value="0"/>'.
     721                    '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">'.
     722                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     723                    '</div>'.
     724                    '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">'.
     725                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     726                    '</div>'.
     727                    '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">'.
     728                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     729                    '</div>'.
     730                    '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">'.
     731                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     732                    '</div>'.
     733                    '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">'.
     734                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     735                    '</div>'.
     736                  '</div>'.
     737                  '</span>'.
     738                '</td>'.
     739              '</tr>'.
     740              '<tr class="reviewDetail2" style="display:none;">'.
     741                '<td class="label second"></td>'.
     742                '<td class="ratings">'.
     743                  '<span class="reviewStars">'.
     744                    '<input type="hidden" class="stars" name="detail2" value="0"/>'.
     745                    '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">'.
     746                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     747                    '</div>'.
     748                    '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">'.
     749                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     750                    '</div>'.
     751                    '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">'.
     752                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     753                    '</div>'.
     754                    '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">'.
     755                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     756                    '</div>'.
     757                    '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">'.
     758                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     759                    '</div>'.
     760                  '</div>'.
     761                  '</span>'.
     762                '</td>'.
     763              '</tr>'.
     764              '<tr class="reviewDetail3" style="display:none;">'.
     765                '<td class="label"></td>'.
     766                '<td class="ratings">'.
     767                  '<span class="reviewStars">'.
     768                    '<input type="hidden" class="stars" name="detail3" value="0"/>'.
     769                    '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">'.
     770                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     771                    '</div>'.
     772                    '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">'.
     773                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     774                    '</div>'.
     775                    '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">'.
     776                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     777                    '</div>'.
     778                    '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">'.
     779                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     780                    '</div>'.
     781                    '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">'.
     782                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     783                    '</div>'.
     784                  '</div>'.
     785                  '</span>'.
     786                '</td>'.
     787              '</tr>'.
     788              '<tr class="reviewDetail4" style="display:none;">'.
     789                '<td class="label second"></td>'.
     790                '<td class="ratings">'.
     791                  '<span class="reviewStars">'.
     792                    '<input type="hidden" class="stars" name="detail4" value="0"/>'.
     793                    '<div class="star-rating oneStars" title="' . $settings['1_stars_not_really_ok'] . '">'.
     794                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     795                    '</div>'.
     796                    '<div class="star-rating twoStars" title="' . $settings['2_stars_hm_ok'] . '">'.
     797                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     798                    '</div>'.
     799                    '<div class="star-rating threeStars" title="' . $settings['3_stars_ok'] . '">'.
     800                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     801                    '</div>'.
     802                    '<div class="star-rating fourStars" title="' . $settings['4_stars_cool'] . '">'.
     803                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     804                    '</div>'.
     805                    '<div class="star-rating fiveStars" title="' . $settings['5_stars_coolest'] . '">'.
     806                      '<span class="rating rate-it-cool-review-summary-empty rate-it-cool-review-summary"></span>'.
     807                    '</div>'.
     808                  '</div>'.
     809                  '</span>'.
     810                '</td>'.
     811              '</tr>'.
     812            '</table>'.
     813            '<br/>'.
     814            '<div class="feedback-title">'.
     815              '<input type="text" name="feedbackTitle" placeholder="' . $settings['placeholder_review_title'] . '" />'.
     816            '</div>'.
     817            '<div class="feedback-content">'.
     818              '<textarea name="feedbackContent" placeholder="' . $settings['placeholder_review_content'] . '"></textarea>'.
     819            '</div>'.
     820            '<div class="feedback-recommend">'.
     821              '<input name="recommend" type="checkbox"> ' . $settings['review_recommend_a_friend'] .
     822            '</div>'.
     823            '<br/>'.
     824            '<div class="feedback-title">'.
     825              $settings['please_fill_in_the_fellowing_text'] . ': <b>' . $settings['securitytext'] . '</b>'.
     826              '<br/>'.
     827              '<input name="securityText" type="text" placeholder="">'.
     828            '</div>'.
     829            '<br/>'.
     830            '<div class="rateit-cool-send-feedback">'.
     831              '<a href="#" data-formname="productDetailFeedbackform$gpnvalue" class="button rateit-cool-send-produkt-feedback">' . $settings['review_send_link'] . '</a>'.
     832            '</div>'.
     833          '</form>'.
     834          '<div class="rateit-cool-send-feedback-success" style="display:none">'.
     835             $settings['thank_you_for_the_review'] .
     836          '</div>'.
     837          '<div class="rateit-cool-send-feedback-error" style="display:none">'.
     838            $settings['error_send_the_review'] .
     839          '</div><hr/>'.
     840      '</div>'.
     841    '</div>'.
    535842        '<div class="recommend">' .
    536843          $settings['customer_recommend_this'] . ': $recommend%' .
     
    545852            '</select>' .
    546853          '</span>' .
    547         '</div>' .
     854        '</div><hr/>' .
    548855        '<dl class="list">$list</dl>' .
    549856        '<div class="showmoreContainer">' .
     
    558865          '<span style="width:$review.stars%;"></span>' .
    559866          '</div>' .
    560           '<span class="date">($review.time)</span>' .
    561           '<h3>$review.title</h3>' .
     867          '<span class="date">$review.time</span>' .
     868        '<br />'.
     869        '<span class="rate-it-cool-verified" style="$review.verified_source">' . $settings['verified'] . '</span>'.
     870        '<h3>$review.title</h3>' .
     871      '<span class="rate-it-cool-public" style="$review.public_source">' . $settings['public'] . '</span>'.
     872      '<span class="rate-it-cool-mobile" style="$review.mobile_source">' . $settings['mobile'] . '</span>'.
    562873        '</dt>' .
    563874        '<dd>' .
Note: See TracChangeset for help on using the changeset viewer.