Monthly Archiv: June, 2020

Helping Your Clients Master eCommerce

If you build enough eCommerce websites, you’ll eventually discover that none of them are simple. Each one comes with its own unique wants and needs. And it takes a lot of work and effort to get things right.

Among the biggest challenges is finding out exactly what a client wants and needs. Small businesses, especially ones that haven’t sold online before, are particularly tough. Quite often, they come into the planning stages of a website without a full understanding of how things work.

This leads to a lot of uncertainty around how to handle shipping, payment gateways and other key functionality. Not only does that make it hard to provide an accurate price quote, it also means that you may not have the resources you need to finish off the project if it’s already in progress.

So, how can web designers help? First, it’s all about showing clients the lay of the land. From there, it’s time to encourage them to do a little research on their own.

Let’s take a look at some ways to help clients make sense of eCommerce.

Start Small with Tough Topics

eCommerce is a vast subject. And, depending on which platform you work with, the amount of options can be overwhelming.

Therefore, it’s best to keep things basic in the beginning. Provide clients with the minimum they need to know in order to spark a deeper conversation later on.

Take, for example, shipping methods. It’s one of the most difficult things for small businesses to grasp. There are, depending on geography, a number of potential carriers, methods and pricing scales. Not to mention the logistics of making it work without losing money.

To say the least, this is a subject that can quickly lead to confusion. However, it is possible to relieve some of that stress by asking the right questions and offering up the simplest solution.

In this case, you might ask what the client’s expectations for shipping are. Do they have a specific carrier in mind? Do they have products of varying sizes? While this is just a fraction of what you’ll need to know, it can help to break the ice.

Based on the answers, you can share specific solutions that work with the chosen eCommerce platform and fit within the client’s parameters. If they don’t really know what they want, point them towards something basic, such as table or flat-rate shipping.

This doesn’t necessarily provide the final solution. But it is a foundation from which you can build upon.

A man pointing to a whiteboard.

Take a Holistic Approach to Training

Selling online brings with it a variety of tasks and responsibilities. In order to keep things running smoothly, clients will need to process orders, manage inventory and provide support to their customers.

This is where client training plays a big role. By showing them the ropes of running an online store, you can help them develop a workflow for getting things done. In addition, it will (hopefully) limit their reliance on you for common issues that pop up.

Start with the basic tasks that take place when they receive an order. Walk them through the process of verifying payments, changing the status of the order and providing tracking information to the customer. They’ll get a sense of how things work and can then determine ways to maximize efficiency.

It’s also important that they understand how the customer experience works. Too often, we focus on teaching the administrative tasks, while forgetting about the front end. Clients will need to know the finer points of that in order support their own customers.

People using a laptop computer.

Encourage Independent Research

Our clients depend on us for guidance. Still, they have to be the ones to make business decisions. All we can really do is help to point them in the right direction.

That means introducing them to helpful resources, while also asking that they do some of the legwork. For example, you might mention a few different payment processors that could be a good fit. From there, you could encourage your client to look at each option’s rates and policies.

This helps to ensure that there are no surprises. Telling a client to use a specific service without their understanding the intricacies could lead to problems later on. They need to understand what they’re getting into, and they (or an associate) should be responsible for figuring out the best option.

Of course, you can still answer any questions they might have. It’s all about making sure that they have the information they need to make the right decision.

Google search displayed on a mobile phone.

Talk About the Future

Successful shops are constantly evolving. And there are always opportunities for retailers to grow their offerings and revenue. These are things clients should both know about and consider. That’s why it’s always a good idea to discuss what the future may bring.

Even when a website starts out on the smallish side, it doesn’t have to stay that way for the long term. Data can be used to determine where to take things next. It might be a new feature that makes searching for products easier or maybe an affiliate program. The answer will vary by client, but there are likely options for every need.

This is important for web designers as well. Not only do we help our clients grow, we also stay in the loop for new phases of the project. That’s money in our pockets, too.

Financial statistics on a computer screen.

Keeping eCommerce Within Reach for All Clients

When you think about it, eCommerce is still a relatively new way to sell products and services. Two-plus decades is a tiny sample size when compared to the old school methods.

Therefore, it’s understandable that a number of small business owners aren’t well-versed in the details of selling online. And because most don’t have the resources to bring in high-priced consultants, a lot of the educational duties fall on web designers.

Helping clients figure things out for themselves can be a challenge – but it is very much possible. Through patience, explaining the concepts around eCommerce and training, you can guide clients towards success. From there, you’ll have the opportunity to grow together.

The post Helping Your Clients Master eCommerce appeared first on Speckyboy Design Magazine.

Asit PHP Collection Class

Package:
Asit PHP Collection Class
Summary:
Manages collections of elements stored in arrays
Groups:
Data types, PHP 5
Author:
Kjell-Inge Gustafsson
Description:
This package can manages collections of elements stored in arrays...

Read more at https://www.phpclasses.org/package/11669-PHP-Manages-collections-of-elements-stored-in-arrays.html#2020-06-11-02:38:07

PHP Internals News: Episode 57: Conditional Codeflow Statements

PHP Internals News: Episode 57: Conditional Codeflow Statements

In this episode of "PHP Internals News" I chat with Ralph Schindler (Twitter, GitHub, Blog) about the Conditional Return, Break, and Continue Statements RFC that he's proposed.

The RSS feed for this podcast is https://derickrethans.nl/feed-phpinternalsnews.xml, you can download this episode's MP3 file, and it's available on Spotify and iTunes. There is a dedicated website: https://phpinternals.news

Transcript

Derick Rethans 0:17 Hi, I'm Derick, and this is PHP internals news, a weekly podcast dedicated to demystifying the development of the PHP language. This is Episode 57. Today I'm talking with Raluphl Schindler about an RFC that he's proposing titled "Conditional return break and continue statements". Hi Ralph, would you please introduce yourself.

Ralph Schindler 0:37 Hey, thanks for having me Derick. I am Ralph Schindler, just to give you a guess the 50,000 foot view of who I am. I've been doing PHP for 22 years now. Ever since the PHP three days, I worked in a number of companies in the industry. Before I broke out into the sort of knowing other PHP developers I was a solo practitioner. After that I went worked for three Comm. And that was kind of a big corporation after that I moved to Zend. I worked in the framework team at Zend and then after that, I worked for another company based out of Austin for friend of mine Josh Butts. That offers.com, we've been purchased since then by Ziff media. I'm still kind of in the corporate world. Ziff media owns some things you might have heard of, PC Magazine, Mashable, offers.com. The company that owns us owns is called j two they are j facts. They keep buying companies, so it's interesting I get to see a lot of different products and companies they get bought and they kind of get folded into the umbrella, and it's, it's an interesting place to work. I really enjoy it.

Derick Rethans 1:39 Very different from my non enterprise gigs

Ralph Schindler 1:43 Enterprise is such an abstract word, and, you know, it's kind of everybody's got different experiences with it.

Derick Rethans 1:49 Let's dive straight into this RFC that you're proposing. What is the problem that this RFC is trying to solve?

Ralph Schindler 1:54 This is actually kind of the bulk of what I want to talk about, because the actual implementation of it all is is extremely small. As it turns out it's kind of a heated and divided topic, My Twitter blew up last weekend after I tweeted it out, and some other people retweeted it so it's probably interesting. I really had to sit down and think about this one question you've got is what is it trying to solve. First and foremost, it's something I've wanted for a really long time, a couple years.

Two weekends ago I sat down and it was a Saturday and I'm like, you know what I haven't haven't hacked on the PHP source in such a long time. The last thing I did was the colon colon class thing, and I was like seven or eight years ago. And again, I got into that because I really wanted the challenge of like digging into the lexer and all that stuff and, incidentally, you know, I load PHP source in Xcode, and my workflow is: I like to set breakpoints in things, and I like to run something, and I look in the memory and I see what's going on and that's how I learned about things. And so I wanted to do that again. And this seemed like a small enough project where I could say, you know this is something I want to see in language, let me see if I can hack it out. First and foremost, I want this. And, you know, that's, it's a simple thing.

So what is it exactly is, it's basically at the statement level of PHP, it is a what they like to call a compound syntactic unit. Something that changes the statement in a way that I think probably facilitates more meaning and intent, and sometimes, not always, it'll do that and fewer lines of code. To kind of expand on that, this is a bit of a joke but a couple

Truncated by Planet PHP, read more at the original (another 22164 bytes)

PHP 7.3.19 Released

The PHP development team announces the immediate availability of PHP 7.3.19. This is a bug fix release.All PHP 7.3 users are encouraged to upgrade to this version.For source downloads of PHP 7.3.19 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog.

WordPress 5.4.2 Security and Maintenance Release

WordPress 5.4.2 is now available!

This security and maintenance release features 23 fixes and enhancements. Plus, it adds a number of security fixes—see the list below.

These bugs affect WordPress versions 5.4.1 and earlier; version 5.4.2 fixes them, so you’ll want to upgrade.

If you haven’t yet updated to 5.4, there are also updated versions of 5.3 and earlier that fix the bugs for you.

Security Updates

WordPress versions 5.4 and earlier are affected by the following bugs, which are fixed in version 5.4.2. If you haven’t yet updated to 5.4, there are also updated versions of 5.3 and earlier that fix the security issues.

  • Props to Sam Thomas (jazzy2fives) for finding an XSS issue where authenticated users with low privileges are able to add JavaScript to posts in the block editor.
  • Props to Luigi – (gubello.me) for discovering an XSS issue where authenticated users with upload permissions are able to add JavaScript to media files.
  • Props to Ben Bidner of the WordPress Security Team for finding an open redirect issue in wp_validate_redirect().
  • Props to Nrimo Ing Pandum for finding an authenticated XSS issue via theme uploads.
  • Props to Simon Scannell of RIPS Technologies for finding an issue where set-screen-option can be misused by plugins leading to privilege escalation.
  • Props to Carolina Nymark for discovering an issue where comments from password-protected posts and pages could be displayed under certain conditions.

Thank you to all of the reporters for privately disclosing the vulnerabilities. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.

One maintenance update was also deployed to versions 5.1, 5.2 and 5.3. See the related developer note for more information.

You can browse the full list of changes on Trac.

For more info, browse the full list of changes on Trac or check out the Version 5.4.2 documentation page.

WordPress 5.4.2 is a short-cycle maintenance release. The next major release will be version 5.5.

You can download WordPress 5.4.2 from the button at the top of this page, or visit your Dashboard → Updates and click Update Now.

If you have sites that support automatic background updates, they’ve already started the update process.

Thanks and props!

In addition to the security researchers mentioned above, thank you to everyone who helped make WordPress 5.4.2 happen:

Andrea Fercia, argentite, M Asif Rahman, Jb Audras, Ayesh Karunaratne, bdcstr, Delowar Hossain, Rob Migchels, donmhico, Ehtisham Siddiqui, Emilie LEBRUN, finomeno, garethgillman, Giorgio25b, Gabriel Maldonado, Hector F, Ian Belanger, Aaron Jorbin, Mathieu Viet, Javier Casares, Joe McGill, jonkolbert, Jono Alderson, Joy, Tammie Lister, Kjell Reigstad, KT, markusthiel, Mayank Majeji, Mel Choyce-Dwan, mislavjuric, Mukesh Panchal, Nikhil Bhansi, oakesjosh, Dominik Schilling, Arslan Ahmed, Peter Wilson, Carolina Nymark, Stephen Bernhardt, Sam Fullalove, Alain Schlesser, Sergey Biryukov, skarabeq, Daniel Richards, Toni Viemerö, suzylah, Timothy Jacobs, TeBenachi, Jake Spurlock and yuhin.

PHP Password Validation Helper

Package:
PHP Password Validation Helper
Summary:
Generate and check a password according to rules
Groups:
PHP 5, Security, Validation
Author:
John Conde
Description:
This package can generate and check a password according to rules...

Read more at https://www.phpclasses.org/package/11678-PHP-Generate-and-check-a-password-according-to-rules.html#2020-06-10-10:22:22

Dealing With Overly Opinionated Design Clients

Do you know what a shoemaker is? Well… it’s a person who makes shoes. But it also has another meaning. In the culinary world, a shoemaker is a hack – someone who is typically ill-informed and incompetent, and who uses shortcuts to get around their lack of skill.

The term comes from the oddity of having a person who makes shoes running around in a kitchen. To be fair to shoemakers, I’m pretty sure most cooks (or designers, for that matter) would be completely lost as to what to do in a shoe factory.

Of course, the equivalent of a shoemaker in the design world are the overly opinionated clients, that insists on bringing in a team of non-designers to muck up your smooth workflow. Better known as design-by-committee, it’s something that has been discussed and re-discussed by designers probably since the dawn of time. Or least since the dawn of design.

Believe it or not, there is a way to nip most design by committee in the bud, and we’re going to explore how you as the designer can tap into this rarely used power and use it to your advantage when working with clients.

Boxer victory fight black white

Authority Vs. Hierarchy

Designers hate design-by-committee because it undermines the years of dedication they put into perfecting their craft. You’ve heard the expression ‘too many cooks in the kitchen,’ and plenty of people outside the culinary industry use the analogy on a daily basis.

Non-designers butting their heads in where they don’t belong and all but ruining any creative effort with their ill-informed decision making is enough to make any designer want to quit and go work in sales.

Non-creative people tend to see design as something subjective, much like art. However, design and art are very different. Whereas art is created mainly to please the artist, design has to please the people who use it. Seth Godin has said that design should be a “dictatorship” rather than a consensus.

If there isn’t one single person making the important decisions as to a design’s direction, you’ll most likely end up with a mess. It’s very rare to find the design team that has completely done away with hierarchy and is still capable of producing a clear, solid vision.

Building The Boundaries

Every designer in the world would leap at the chance to solve the design-by-committee problem once and for all. The constant changing of minds and cropping up of doubts is often the death of any real vision or creativity in a design project.

I hate to break it to you, but design-by-committee is never going to go away completely. As long as designs have to pass through a funnel of more than one person, you will always have design ‘shoemakers’ in your kitchen, telling you what they think is best. What can change, however, is whether or not you let them completely take over your job as the designer.

Most of the time, clients get too involved in the work they hired you to do because you didn’t set clear enough boundaries in the beginning. The solution involves bringing the client back to a familiar pain point: money.

Show Them The Money

Why are your ideas automatically superior to your client’s? Well, they hired you for a reason; you’re the professional designer, after all. By taking the opportunity to gently remind your client what it is that you’re there for, you not only gain more respect, you also help them realize that they’re paying you for a service they’re not allowing you to perform.

By reminding the client how much money they’re wasting by forcing you to contend with their bad ideas, you can turn any client from an overbearing burden to a respectful and efficient employer in no time. No client likes to see how their own actions are costing them money, so this is something all designers should be constantly using to their advantage in order to maintain control of the projects they were hired to do in the first place.

Of course, you shouldn’t be trying to manipulate anyone, but then again, neither should you be okay with being pushed around like a puppet on stage either. You aren’t a dancing monkey – you’re a professional service provider who (hopefully) commands a professional rate. Remind the shoemakers that time – yours and theirs – is money, so that they can go back to making shoes (or whatever they actually do), and you can get on with making design magic happen.

When In Doubt, Ask

Don’t be afraid to ask questions and find out exactly why your client is going against your better judgement. As a part of the problem-solving team, you have a right to know, and your client has a vested interest in making sure you’re contributing to the process (they are paying you, after all).

Remember that if things go wrong because of a bad design decision, the blame will fall to you, not the client or the committee. It’s important to get as much of your client communication in writing as possible. Why? Because when things predictably go wrong and your client wants to scream at you, you’ll have hard proof that you tried to warn them.

Sometimes, however, the client has a legitimate reason for making changes that seem insane – this is where knowing your client’s market and understanding the needs of their customers comes in handy. If you make an arbitrary design choice that actually contradicts your client’s customer data, they have every right to question you on it.

Conclusion

It’s important to pick your battles and know when it’s not worth it to fight with a client. But it’s equally important to remember your place as the designer. If you trust your decisions and stand by them, your clients will too.

The post Dealing With Overly Opinionated Design Clients appeared first on Speckyboy Design Magazine.

Dumb Reasons to Hate PHP

PHP just recently celebrated its 25th anniversary since it was first introduced, which is quite the achievement, considering it still powers a large slice of the Internet today. I don't write much PHP anymore myself as I've more or less moved on to new and different things, but I am incredibly grateful to PHP. It was one of the first “real” programming languages I really invested in to learn programming, and learn I did. I built real things, real websites with it, and also was involved in the community for a while. I saw the rise of Composer and Packagist replace the aging PEAR. I saw the release of PHP 7 and all the work that went into it the years prior leading up to it.

Now as expected whenever talking about PHP on the Internet, people are quick to grab their pitchforks and rehash the same classic criticisms of PHP over and over like a mantra. Is it to feel superior? Do they think they're doing a public service? I don't know. What I do know is that they're right to some extent; PHP isn't the best-designed language by any means, largely because it changed organically and incrementally over time. It certainly hasn't stopped PHP from becoming as popular as it has.

There are plenty of good reasons why PHP isn't the best language for many use-cases, and reasons why other languages are superior. I consider myself very experienced with it, so I speak from experience. Here are some examples just from memory:

  • The standard library, while fairly complete, doesn't really follow modern PHP's own best practices for API design, as it was largely created before PHP had things like namespaces and classes. This results in an odd disconnect with modern packages, and that weird mix of styles never really goes away.
  • The standard library also cares a lot about backwards compatibility, which is a good thing, but its also a double-edged sword. There are a lot of APIs and extensions that are soft-deprecated or generally not used in favor of higher-quality third-party packages.
  • The fact that every class file begins with <?php reminds you that PHP was originally just an html preprocessor and always runs inside the context of another file format. It makes sense, but its unusual and weird, especially since embedding PHP into html isn't even done at all in many frameworks which have dedicated templating languages instead.

There are probably others, but these don't keep me from remembering PHP with fondness as something that just works out of the box and has a lot of convenient features for web development.

What's strange to me though is that instead of reasonable complaints like these, people like to present complaints that don't make sense, aren't true, or are just plain silly. Let's take a look at just a couple that I've seen.

The syntax is strange and archaic!

This complaint doesn't really make much sense to me. PHP's syntax is very heavily inspired by C (which it is written in) and borrows many things from it. In fact, it fits right in with most of the languages in the C family of syntax. Just swap the dot operator for -> (which by the way is also lifted from C, its equivalent to (*struct_ptr).field), prepend all your variables with the $ sigil, and that's just about it. It's got your boring traditional class syntax that even JavaScript adopted, closures, and pretty much every modern convenience.

Granted, sigils probably remind you of Perl, but don't worry, they don't have crazy effects on data types like in Perl. Just think of it as part of the variable name and you'll be fine.

There are a few PHP-specific oddities in its syntax, like @ and using \ as a namespace separator, but these seem like really petty nitpicks to me.

It isn't modular!

This sort of complaint is really nebulous, and could stand to have some clarifying questions asked. Usually one means one of two things:

  • Everything is in a global namespace with no modular separation.
  • There is no modular way of packaging code.

Now both of these are just blatantly false. The first one is easy: PHP has namespaces, like Java, C#, or what-have-you. And they were added to the language in version 5.3, which was released in 2009! Now to be fair, there still exists a lot of codebases that were initially designed before then (like WordPress) that don't leverage namespaces everywhere because of this, and this includes the standard library itself. But generally namespaces have been adopted for some time, and any modern PHP codebase uses them well.

The second complaint is also false, but has a seed of truth i

Truncated by Planet PHP, read more at the original (another 5095 bytes)

Powered by Gewgley