WooCommerce issue fix

Although we don't specialize in WordPress development, sometimes we receive the support requests for WP.

For those who have troubles with this error in WooCommerce:

> PayPal error (2): An error (2) occurred while processing your PayPal payment. Please contact the store owner for assistance.

The fix that worked in our case (WordPress version 5.3.2, WooCommerce version 3.9.0 with Jetpack version 8.1.1) was enabling Jetpack plugin, not just on the plugins page, but on the Jetpack page itself:

You should follow the registration procedure (there's a free plan).

1. You should have PayPal Checkout enabled on your "Payments" tab in WooCommerce config:

2. In PayPal Checkout settings you should see "Payment Email" field in "API Credentials" section - you should put your PayPal email address there:

If you follow these instructions it should work, at least it worked for us.

What makes a project successful

Code Your Dream team has been successfully working with customers all over the world since 2008. Before CYD I worked for another company who did outsourcing in IT as well (in other technologies).
I worked directly and indirectly with large companies like Xerox, adidas, Stanley Black & Decker, Teresis Media.
Now here's what I learned from 12+ years of managing and developing IT projects.

The clear, prompt and organized communications are the main key to success

Everything else can be outsourced or delegated, the communications must be handled clearly and efficiently between someone from the provider's end and the customer's end.
The clearer the communications are, the more chances for success. And vice versa: bad communications lower the chances to succeed.

The quality of specifications

How to run multiple PHP versions with Apache on one Linux machine using Docker

I guess many PHP developers would love to have an easy way of switching between different versions of PHP on one machine. Or even having all required versions available in parallel.
Whether you work on multiple projects that require different versions of PHP or if you'd like to test a website on different PHP versions, it would be really nice to do this quickly without having to run multiple virtual machines or dealing with packages downgrade.
So, there's a really powerful tool that can be used to achieve this and its name is Docker.

Our goal was: elaborate a "magic command" that would run all local websites on multiple ports working on different versions of PHP, like so:
http://localsite runs with the currently installed PHP
http://localsite:8053 runs with PHP 5.3
http://localsite:8055 runs with PHP 5.5
http://localsite:8056 runs with PHP 5.6
http://localsite:8070 runs with PHP 7.0

Can't install PhoneGap app to iPhone 4 (iOS 7.1.2)

We ran into another issue with our PhoneGap / DrupalGap / Cordova app.
Just around a week ago (mid December 2016) we could successfully install it on our oldest iPhone with iOS 7.1.2.
But now the app won't install, even on the same code base and the same settings.

We use PhoneGap Build for building our apps.
And it looks like they updated Cordova version recently, so the minimum supported iOS version is 8.0.

We posted a forum topic asking for help:
And today we found the solution here:

It appears that it's possible to deploy the app built with current Cordova if you explicitly specify the iOS version in the configs like so:

<preference name="deployment-target" value="7.1.2" />

[PhoneGap] [DrupalGap] How to resolve "the app's Info.plist must contain an NSPhotoLibraryUsageDescription key" issue

Today we encountered an issue while trying to submit a DrupalGap app to Apple store:

We have discovered one or more issues with your recent delivery for "TheVine | Fresh Showcase". To process your delivery, the following issues must be corrected:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

According to brief Internet research, this is a known recently appeared issue of PhoneGap, Ionic, Cordova apps.

Our app uses cordova-plugin-camera, and the plugin page says:

Since iOS 10 it's mandatory to add a NSCameraUsageDescription and NSPhotoLibraryUsageDescription in the info.plist.
NSCameraUsageDescription describes the reason that the app accesses the user’s camera.
NSPhotoLibraryUsageDescription describes the reason the app accesses the user's photo library.

Why Drupal is great for start-ups

When you’ve got a start-up business and you’re looking to impress with a stunning website, then it can get quite daunting. CMS platforms are all the rage these days because you no longer need to rely on a webmaster to make quick edits to your site, but you can do them yourself. CMS platforms allow those who do not know how to code to manage basic pages and posts themselves. The leading CMS right now are Drupal, WordPress and Joomla, with people giving different pros and cons about each one. This article discusses the benefits of Drupal and why it should be your CMS of choice for your start-up.

1. Drupal is flexible

The latest version of Drupal has addressed all the issues seen in previous versions. Many users complained of the shortcomings and these have now been addressed. It now allows users to keep their options open, which makes it ideal for start-ups, as they may not know which direction your business will go in. But Drupal will allow for expansion and future scaling and integration.

2. Responsiveness

How do you quote your projects?

This article is based on a recent communication with one of our prospects.
The customer provided us very high-level requirements, and we elaborated a very high-level quote based on the requirements: 4 - 5 man / months.
The customer then asked why there's such a big "difference" (meaning 1 man/month fork).

And I thought that this is actually a very deep and interesting question that I'm asking myself in many projects in the initial analysis phase.

Here's the problem.
Your customer doesn't know what he/she wants exactly, he can only provide a rough outline, BUT they want it within a fixed budget. Can you see the mismatch between the unknown expectations and the fixed price here?
And of course, the provider who implements the project doesn't want to do the unknown work (which usually grows down the road, as the customer begins to realize what he/she really wants) within the fixed budget and time.

We implemented our first DrupalGap/PhoneGap app!

Code Your Dream is glad to present a new portfolio item - a cross-platform mobile application based on DrupalGap (and PhoneGap).

Animating a gif on hover

When a page has many gif images, you’d prefer to play them upon certain user action: over the image, click on the picture or some button, slider scroll, etc. There are several possible options on how to implement this. Let’s take a look at the most popular ones:

1. Image substitution.
The idea here is to promptly substitute a static image with the animated gif upon some event. Let’s assume we use image click event.

Here’s the code:

Same thing for the “hover” event:

Note that in our example we use jQuery 1.9.1.

2. Using a third-party library.
A quick and simple way to animate a gif upon some event is to use an appropriate library. I personally prefer freezeframe.js
There’s a detailed instruction with samples available there.

Our module was published on!

We've finally made through the tough contribution process at and published our module - popup forms.
This module provides an easy way for developers to display any Drupal form in a popup (through jQuery UI dialog).
Hope it help the Drupal developers community to build even better sites!


Subscribe to RSS - blogs