Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
Yii2 Application Development Cookbook
Yii2 Application Development Cookbook

Yii2 Application Development Cookbook: Discover 100 useful recipes that will bring the best out of the Yii2 framework and be on the bleeding edge of web development today , Third Edition

eBook
€8.99 €32.99
Paperback
€41.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Yii2 Application Development Cookbook

Chapter 2. Routing, Controllers, and Views

In this chapter, we will cover the following topics:

  • Configuring URL rules
  • Generating URLs
  • Using regular expressions in URL rules
  • Using a base controller
  • Using standalone actions
  • Creating a custom filter
  • Displaying static pages
  • Using flash messages
  • Using the controller context in a view
  • Reusing views with partials
  • Using blocks
  • Using decorators
  • Defining multiple layouts
  • Pagination and sorting data

Introduction

This chapter will help you to learn some handy things about the Yii URL router, controllers, and views. You will be able to make your controllers and views more flexible.

Configuring URL rules

In this recipe, we will learn how to configure URL rules. Before we begin lets set up an application.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.
  2. Create the @app/controllers/TestController.php controller with the following code inside:
    <?php
    
    namespace app\controllers;
    
    use yii\helpers\Html;
    use yii\web\Controller;
    
    class TestController extends Controller
    {
        public function actionIndex()
        {
            return $this->renderContent(Html::tag('h2',
                'Index action'
            ));
        }
    
        public function actionPage($alias)
        {
            return $this->renderContent(Html::tag('h2',
                'Page is '. Html::encode($alias)
            ));
        }
    }

    This is the application controller that we are going to customize URLs for.

  3. Configure your application server to use clean URLs. If you are...

Generating URLs

Yii allows you to not only route your URLs to different controller actions, but also to generate a URL by specifying a proper internal route and its parameters. This is really useful because you can focus on internal routes while developing your application, and only worry about real URLs before going live. Never specify URLs directly and make sure that you use the Yii URL toolset. It will allow you to change URLs without rewriting a lot of application code.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.
  2. Find your @app/config/web.php file and replace the rules array as follows:
    'urlManager' => array(
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ),
  3. Configure your application server to use clean URLs. If you are using Apache with mod_rewrite and AllowOverride turned on, then you should add the...

Using regular expressions in URL rules

One of the hidden features of the Yii URL router is that you can use regular expressions that are pretty powerful for handling strings.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.
  2. In your @app/controllers directory, create PostController.php using the following:
    <?php
    
    namespace app\controllers;
    
    use yii\helpers\Html;
    use yii\web\Controller;
    
    class PostController extends Controller
    {
        public function actionView($alias)
        {
            return $this->renderContent(Html::tag('h2',
                'Showing post with alias ' . Html::encode($alias)
            ));
        }
    
        public function actionIndex($type = 'posts', $order = 'DESC')
       {
            return $this->renderContent(Html::tag('h2',
               'Showing ' . Html::encode($type) . ' ordered ' . Html...

Using a base controller

In many frameworks, the concept of a base controller that is being extended by other ones is described right in the guide. In Yii, it is not in the guide, as you can achieve flexibility in many other ways. Still, using a base controller is possible and can be useful.

Let's say we want to add some controllers that will be accessible only when the user is logged in. We can certainly set this constraint for each controller separately, but we will do it in a better way.

Getting ready

Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-startinstallation.html.

How to do it…

  1. First, we will need a base controller that our user-only controllers will use. Let's create @app/components/BaseController.php with the following code:
    <?php
    
    namespace app\components;
    
    use Yii;
    use yii\web\Controller;
    use yii\filters\AccessControl;
    
    class BaseController extends Controller
    {
        public...

Using standalone actions

In Yii, you can define controller actions as separate classes and then connect them to your controllers. This will help you to reuse some common functionality.

For example, you can move the backend for autocomplete fields to an action and save some time by not having to write it over and over again.

Another example is that we can create all CRUD operations as separate standalone actions. We will write, create, view, and delete operations of the model and view the list operation of models.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.
  2. Let's create post table. Create migration for this using the following command:
    ./yii migrate/create create_post_table
  3. Update the just-created migration's methods and list of imported classes as follows:
    <?php
    
    use yii\db\Schema;
    use yii\db\Migration;
    
    class m150719_152435_create_post_table extends...

Introduction


This chapter will help you to learn some handy things about the Yii URL router, controllers, and views. You will be able to make your controllers and views more flexible.

Configuring URL rules


In this recipe, we will learn how to configure URL rules. Before we begin lets set up an application.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.

  2. Create the @app/controllers/TestController.php controller with the following code inside:

    <?php
    
    namespace app\controllers;
    
    use yii\helpers\Html;
    use yii\web\Controller;
    
    class TestController extends Controller
    {
        public function actionIndex()
        {
            return $this->renderContent(Html::tag('h2',
                'Index action'
            ));
        }
    
        public function actionPage($alias)
        {
            return $this->renderContent(Html::tag('h2',
                'Page is '. Html::encode($alias)
            ));
        }
    }

    This is the application controller that we are going to customize URLs for.

  3. Configure your application server to use clean URLs. If you are using Apache with mod_rewrite and AllowOverride...

Generating URLs


Yii allows you to not only route your URLs to different controller actions, but also to generate a URL by specifying a proper internal route and its parameters. This is really useful because you can focus on internal routes while developing your application, and only worry about real URLs before going live. Never specify URLs directly and make sure that you use the Yii URL toolset. It will allow you to change URLs without rewriting a lot of application code.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.

  2. Find your @app/config/web.php file and replace the rules array as follows:

    'urlManager' => array(
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ),
  3. Configure your application server to use clean URLs. If you are using Apache with mod_rewrite and AllowOverride turned on, then you should add the following lines to the .htaccess...

Using regular expressions in URL rules


One of the hidden features of the Yii URL router is that you can use regular expressions that are pretty powerful for handling strings.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.

  2. In your @app/controllers directory, create PostController.php using the following:

    <?php
    
    namespace app\controllers;
    
    use yii\helpers\Html;
    use yii\web\Controller;
    
    class PostController extends Controller
    {
        public function actionView($alias)
        {
            return $this->renderContent(Html::tag('h2',
                'Showing post with alias ' . Html::encode($alias)
            ));
        }
    
        public function actionIndex($type = 'posts', $order = 'DESC')
       {
            return $this->renderContent(Html::tag('h2',
               'Showing ' . Html::encode($type) . ' ordered ' . Html::encode($order)
            ));
        }
    
        public function actionHello($name...

Using a base controller


In many frameworks, the concept of a base controller that is being extended by other ones is described right in the guide. In Yii, it is not in the guide, as you can achieve flexibility in many other ways. Still, using a base controller is possible and can be useful.

Let's say we want to add some controllers that will be accessible only when the user is logged in. We can certainly set this constraint for each controller separately, but we will do it in a better way.

Getting ready

Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-startinstallation.html.

How to do it…

  1. First, we will need a base controller that our user-only controllers will use. Let's create @app/components/BaseController.php with the following code:

    <?php
    
    namespace app\components;
    
    use Yii;
    use yii\web\Controller;
    use yii\filters\AccessControl;
    
    class BaseController extends Controller
    {
        public function actions...

Using standalone actions


In Yii, you can define controller actions as separate classes and then connect them to your controllers. This will help you to reuse some common functionality.

For example, you can move the backend for autocomplete fields to an action and save some time by not having to write it over and over again.

Another example is that we can create all CRUD operations as separate standalone actions. We will write, create, view, and delete operations of the model and view the list operation of models.

Getting ready

  1. Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.

  2. Let's create post table. Create migration for this using the following command:

    ./yii migrate/create create_post_table
  3. Update the just-created migration's methods and list of imported classes as follows:

    <?php
    
    use yii\db\Schema;
    use yii\db\Migration;
    
    class m150719_152435_create_post_table extends Migration...

Creating a custom filter


Filters are objects that run before and/or after controller actions. For example, an access control filter may run before actions to ensure that they are allowed to be accessed by particular end users; a content compression filter may run after actions to compress the response content before sending them out to end users.

A filter may consist of a prefilter (filtering logic applied before actions) and/or a postfilter (logic applied after actions). Filters are essentially a special kind of behavior. Therefore, using filters is the same as using behaviors.

Let's assume that we have a web application, which provides a user interface for working only at specified hours, for example, from 10 AM to 6 PM.

Getting ready

Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.

How to do it…

  1. Create a controller, @app/controllers/TestController.php, as follows:

    <?php
    
    namespace...

Displaying static pages


If you have a few static pages and aren't going to change them very frequently, then it's not worth querying the database and implementing page management for them.

Getting ready

Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-startinstallation.html.

How to do it…

  1. Create the test controller file, @app/controllers/TestController.php, as follows:

    <?php
    
    namespace app\controllers;
    
    use yii\web\Controller;
    
    class TestController extends Controller
    {
        public function actions()
        {
            return [
                'page' => [
                    'class' => 'yii\web\ViewAction',
                ]
            ];
        }
    }
  2. Now, put your pages into views/test/pages, and name them index.php and contact.php. The content of index.php is as follows:

    <h1>Index</h1>
    content of index file
    
    Contact.php content is:
    
    <h2>Contacts</h2>
    <p>Our contact: contact@localhost</p...

Using flash messages


When you are editing a model with a form, deleting a model, or doing any other operation, it is good to tell users if it went well or if there was an error. Typically, after some kind of action, such as editing a form, a redirect will happen and we need to display a message on the page we want to go to. However, how do we pass it from the current page to the redirect target and clean up afterwards? Flash messages will help us do this.

Getting ready

Create a new application using the Composer package manager, as described in the official guide at http://www.yiiframework.com/doc-2.0/guide-start-installation.html.

How to do it…

  1. Let's create a @app/controllers/TestController.php controller as follows:

    <?php
    
    namespace app\controllers;
    
    use Yii;
    use yii\web\Controller;
    use yii\filters\AccessControl;
    
    class TestController extends Controller
    {
        public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className...
Left arrow icon Right arrow icon

Key benefits

  • • Learn how to use Yii2 efficiently through clear examples and core features, and see how to use tests, create reusable code snippets, core widgets, deployment, and more
  • • This book provides you with a wide space for practice approaches and helps you to learn about the new Yii2 framework.
  • • Understand the difference between the Yii 1.x.x versions using useful examples from real web applications

Description

Yii is a free, open source web application development framework written in PHP5 that promotes clean DRY design and encourages rapid development. It works to streamline your application development time and helps to ensure an extremely efficient, extensible, and maintainable end product. Being extremely performance optimized, Yii is a perfect choice for any size project. However, it has been built with sophisticated, enterprise applications in mind. You have full control over the configuration from head-to-toe (presentation-to-persistence) to conform to your enterprise development guidelines. It comes packaged with tools to help test and debug your application, and has clear and comprehensive documentation. This book is a collection of Yii2 recipes. Each recipe is represented as a full and independent item, which showcases solutions from real web-applications. So you can easily reproduce them in your environment and learn Yii2 fast and without tears. All recipes are explained with step-by-step code examples and clear screenshots. Yii2 is like a suit that looks great off the rack, but is also very easy to tailor to fit your needs. Virtually every component of the framework is extensible. This book will show how to use official extensions, extend any component, or write a new one. This book will help you create modern web applications quickly, and make sure they perform well using examples and business logic from real life. You will deal with the Yii command line, migrations, and assets. You will learn about role-based access, security, and deployment. We’ll show you how to easily get started, configure your environment, and be ready to write web applications efficiently and quickly.

Who is this book for?

This book is for developers with good PHP5 knowledge and MVC-frameworks who have tried to develop applications using the Yii 1.x.x version. This book will very useful for all those who would like to try Yii2, or those who are afraid to move from Yii 1.x.x. to Yii2. If you have still not tried Yii2, this book is definitely for you!

What you will learn

  • •See the new version of the Yii2 framework and application development practices
  • •Write your applications more efficiently using shortcuts, Yii's core functionality, and the best practices in Web 2.0
  • •Get data from a database, and deal with Active Record, migrations, widgets, and core features
  • •Easily update your skills from the previous version of the framework
  • •Explore how to use Yii with different JavaScript frameworks and libraries such as WebSockets, Angular, Ember, Backbone and React
  • •Learn how to keep your application secure according to the general web application security principle "filter input, escape output.
  • •Write RESTfull Web Services using Yii2 and built-in features
  • •Correctly install and use official extensions in your projects
  • •Effectively create and implement your own Yii extension, and also ensure your extension is reusable and useful for the community
Estimated delivery fee Deliver to Greece

Premium delivery 7 - 10 business days

€17.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Nov 09, 2016
Length: 584 pages
Edition : 3rd
Language : English
ISBN-13 : 9781785281761
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Greece

Premium delivery 7 - 10 business days

€17.95
(Includes tracking information)

Product Details

Publication date : Nov 09, 2016
Length: 584 pages
Edition : 3rd
Language : English
ISBN-13 : 9781785281761
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 120.97
Yii2 By Example
€36.99
Mastering Yii
€41.99
Yii2 Application Development Cookbook
€41.99
Total 120.97 Stars icon
Banner background image

Table of Contents

13 Chapters
1. Fundamentals Chevron down icon Chevron up icon
2. Routing, Controllers, and Views Chevron down icon Chevron up icon
3. ActiveRecord, Model, and Database Chevron down icon Chevron up icon
4. Forms Chevron down icon Chevron up icon
5. Security Chevron down icon Chevron up icon
6. RESTful Web Services Chevron down icon Chevron up icon
7. Official Extensions Chevron down icon Chevron up icon
8. Extending Yii Chevron down icon Chevron up icon
9. Performance Tuning Chevron down icon Chevron up icon
10. Deployment Chevron down icon Chevron up icon
11. Testing Chevron down icon Chevron up icon
12. Debugging, Logging, and Error Handling Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.5
(2 Ratings)
5 star 50%
4 star 50%
3 star 0%
2 star 0%
1 star 0%
MARCUS ANTONIO MARTINHO E SILVA Oct 29, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The author demonstrate concepts one by one so we can focus on and explore them deeply.
Amazon Verified review Amazon
alfa Mar 10, 2023
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Very good reference of, in my opinion the best PHP framework. The writer don't take you up in a story of his experiances, but the topics are clear and there is a download of the code from the book available.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela