Jump to content

Franz

Members
  • Posts

    7
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Like
    Franz reacted to niyo in Logical Order Forms For Domains And Hosting   
    Blesta markets itself as "The Billing Software Platform for Hosting Providers" so i don't think improving the experience for shared hosting is too much to ask. It's a super product for VPS and dedicated servers. Actually I think its the best billing system period for literally anything other than shared hosting.
     
    Anyway this should hopefully sum up the desired user flow but anyone else can chime in to improve it if I've missed anything.
     

     
    The next step would be to figure out how that translates to the UI. The primary problem with current UI is there is no option for admins to add context e.g. with tooltips or field descriptions. this is fine for smart users but shared hosting users aren't always technically inclined.
     
    The current problem is if a customer uses paths A or B there is no easy way to get to C if they don't already have a domain. Nor is it clear that they need to get a domain. This is the main cause of confusion that many admins have been hoping to be changed in this forum.
     
    Currently landing on a package with pricing gives the configurable options box for domain. one proposal could be to have 3 radio selects below the domain. 1 that allows the customer to use the domain they've already registered and is the equivalent to how just pressing continue currently works, another that allows the customer to transfer a domain (not as important but its a nice extra) and finally one that will search for the domain. Radio selects would allow for more elaborate language but if someone can think of concise ways of getting the point across then buttons may be better.
  2. Thanks
    Franz reacted to TheMaster in Switch order from [Standard] template into BOXES   
    Am am fan of standard order template but i wanted it to be boxes instate of list ,
    so i play around with it and i came out with the attached Image  i share it here there might be some one who is interested and like  it 
    if any one interested to use it here is the code (replace the file  /plugins/order/views/templates/standard/main_index.pdt) with bellow code;
     
    <?php foreach ($package_groups as $group_id => $package_group) { if (!array_key_exists($group_id, $packages)) { continue; } $this->WidgetClient->clear(); $this->WidgetClient->create($this->Html->ifSet($package_group->name)); ?> <div class="card-body"> <div class="row"> <?php $j = 0; asort($packages[$group_id]); foreach ($packages[$group_id] as $package) { // Only render package if there are pricing options available if (empty($package->pricing)) { continue; } ?> <?php if ($j++ > 0) { ?> <hr /> <?php } ?> <div class="col-md-6 col-lg-4 col-xl-3 p-3"> <div class="border"> <div class="text-center text-white p-1 bg-danger"><strong><?php $this->Html->_($package->name);?></strong></div> <div class="pkg-description p-1"> <?php echo ($this->Html->ifSet($package->description_html) != '' ? $package->description_html : $this->TextParser->encode($parser_syntax, $package->description));?> </div> <div class="text-center p-1"> <?php $this->Form->create(null, ['class' => 'sdisable-on-submit', 'role' => 'form']); $sold_out = $this->Html->ifSet($package->qty, null) == '0'; $limit_reached = $package->client_qty !== null && $package->client_qty <= $this->Html->ifSet($package_counts[$package->id], 0); // Prevent sold out packages from being submitted if (!$sold_out && !$limit_reached) { $this->Form->fieldHidden('group_id', $group_id); } ?> <div class="form-group"> <?php $prices = []; foreach ($package->pricing as $price) { if ($this->Html->ifSet($price->period) == 'onetime') { $period = $this->Html->ifSet($periods[$price->period]); } else { $term = $this->Html->_($price->term, true); $period = $this->Html->concat(' ', $term, ($term == 1 ? $this->Html->ifSet($periods[$price->period]) : $this->Html->ifSet($periods[$price->period . '_plural']))); } // Set the pricing text to include or not include renewal pricing $prices[$price->id] = ($this->Html->ifSet($price->period) == 'onetime' || ($this->Html->ifSet($price->price) == $this->Html->ifSet($price->price_renews)) ? $this->_('Main.index.package_price', true, $period, $this->CurrencyFormat->format($this->Html->ifSet($price->price), $this->Html->ifSet($price->currency))) : $this->_('Main.index.package_price_recurring', true, $period, $this->CurrencyFormat->format($this->Html->ifSet($price->price), $this->Html->ifSet($price->currency)), $this->CurrencyFormat->format($this->Html->ifSet($price->price_renews), $this->Html->ifSet($price->currency))) ); } $this->Form->fieldSelect('pricing_id', $prices, null, ['class' => 'form-control input-sm']); ?> </div> <?php if ($sold_out) { ?> <div class="btn btn-sm btn-danger form-group" disabled="disabled"><i class="fas fa-ban"></i> <?php $this->_('Main.index.sold_out');?></div> <?php } elseif ($limit_reached) { ?> <div class="btn btn-sm btn-danger form-group" disabled="disabled"><i class="fas fa-ban"></i> <?php $this->_('Main.index.client_limit');?></div> <?php } else { ?> <button type="submit" class="btn btn-dark btn-sm form-group"><i class="fas fa-shopping-cart"></i> <?php $this->_('Main.index.select_btn');?></button> <?php } $this->Form->end(); ?> </div> <div class="clearfix"></div> </div> </div> <?php } ?> </div> </div> <?php $this->WidgetClient->end(); } ?>  
     
  3. Like
    Franz got a reaction from MDHMatt in PHP 8 Support   
    @PaulIs php8.1 now approved for production?
  4. Like
    Franz reacted to 5 Star Plugins in Handling referrals with a separate site for marketing?   
    I am using some Javascript to add the affiliate ID to every link on my main site, so it passes the affiliate ID when they click an order button that links to Blesta. I've tried creating a cookie named affiliate_code, but it seems to have issues across domains or with subdomains, so I'm not sure it's working well yet.
    I also added a fetch so that the visit counts towards the affiliate's visit count in their stats.
    Code I add in the header, if anyone wants to try and use it:
    <script> function getParameterByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, '\\$&'); var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, ' ')); } window.addEventListener('load', function() { var anchors = document.getElementsByTagName("a"); let affiliate_id = getParameterByName('a'); if (affiliate_id !== null ) { let blestadomain = '.yourdomain.com'; let daystoexpire = 60; const d = new Date(); d.setTime(d.getTime() + (daystoexpire*24*60*60*1000)); document.cookie = "affiliate_code=" + affiliate_id + "; expires=" + d.toUTCString() + "; ;domain=" + blestadomain + ";path=/"; console.log('Set cookie - affiliate ID: ' + affiliate_id + '; expires: ' + d.toUTCString() + '; domain: ' + blestadomain); for (var i = 0; i < anchors.length; i++) { anchors[i].href = anchors[i].href.indexOf('#') != -1 ? anchors[i].href : anchors[i].href += anchors[i].href.indexOf('?') != -1 ? "&a=" + affiliate_id : "?a=" + affiliate_id; } fetch('https://billing.yourdomain.com/order/forms/a/' + affiliate_id, { mode: "no-cors" }); } }); </script> EDIT: Changed window.load to window.addEventListener because window.load was unreliable on some sites for some reason.
  5. Like
    Franz reacted to Paul in Display Prices On Your Website.   
    Here's the task: CORE-4213
  6. Like
    Franz reacted to Paul in Stripe Gateway and ACH   
    Stripe Payments supports ACH in Blesta 5.3, which is not out yet. Beta soon.
  7. Like
    Franz reacted to Paul in Support For Hosted Transactional Email (Postmark, Mandrill, Mailgun Etc)   
    Looks like you created a request here https://requests.blesta.com/topic/support-for-hosted-transactional-email-postmark-mandrill-mailgun-etc
    We are considering transactional email integration, it's something that I think we are likely to do, it's just not a very high priority at the moment. We'll keep an eye on your request  
×
×
  • Create New...