skip to Main Content

This guide explains how to securely host audio files on Amazon S3 and play them inside WooCommerce products using the BookChoix theme.

By the end of this tutorial, you will be able to:

  • Secure your audio files using a private Amazon S3 bucket
  • Prevent direct public access to audio files
  • Play audio securely inside WooCommerce product pages
  • Use signed URLs for controlled audio access

1. What This Setup Does (Important to Understand)

  • Audio files are stored in a private Amazon S3 bucket
  • BookChoix generates authenticated (signed) URLs with time restriction
  • Audio files are delivered securely to users
  • Public access and direct downloads are restricted without signed token URLs.

Note:
This is secure delivery, not true live streaming.
It is ideal for audiobooks, lessons, and paid audio content.

2. Requirements

Before you begin, make sure you have:

  1. A WordPress website
  2. WooCommerce installed and activated
  3. BookChoix Theme installed and activated
  4. An Amazon Web Services account
  5. Access to WordPress Admin

3. Create a Private Amazon S3 Bucket

Step 1: Sign in to Amazon AWS

Step 2: Open Amazon S3

From the AWS Console:

  1. Search for S3
  2. Click S3 (Simple Storage Service)

Step 3: Create a New Bucket

  1. Click Create bucket
  2. Enter a unique bucket name
    Example:

    bookchoix-private-audio
  3. Choose a region (remember this for later)

Step 4: Block Public Access (Required)

Make sure the below options are checked:

  • ✅ Block all public access

This ensures your audio files are never publicly accessible.

  • Click Create bucket.

4. Upload Audio Files to the Bucket

  1. Open your newly created bucket
  2. Click Upload
  3. Upload your audio files
    Supported formats: .mp3, .wav, .m4a

Do not make files public

5. Create AWS Access Keys (IAM User)

BookChoix needs permission to generate signed URLs.

Step 1: Open IAM

  • Go to IAM in AWS Console
  • Click Users → Add users

Step 2: Create User

  • Username: bookchoix-s3-user
  • Access type: Programmatic access

Step 3: Attach Permissions

Attach this policy:

  • AmazonS3ReadOnlyAccess

(Recommended for security)

Step 4: Save Access Keys

After creation, AWS will show:

  • Access Key ID
  • Secret Access Key

Save these securely — you will not see them again.

6. Configure Amazon S3 in BookChoix Theme

Step 1: Open BookChoix Options

In WordPress Admin:

Appearance → BookChoix Options

Step 2: Enter S3 Details

Fill in the following fields:

Field Description
AWS Access Key ID Your IAM access key
AWS Secret Access Key Your IAM secret key
S3 Bucket Name Your private bucket name
AWS Region Same region used when creating bucket

Click Save Changes.

✅ BookChoix is now connected to Amazon S3.


7. Add Audio to a WooCommerce Product

Step 1: Edit Product

Go to: Products → All Products → Edit

Step 2: Enable Audio Player

Scroll to BookChoix Media Settings.

  • Audio Source: Amazon S3
  • Paste Amazon S3 File URL

Example:

https://your-bucket-name.s3.amazonaws.com/audio-file.mp3

Even though you paste the URL, BookChoix converts it into a signed URL automatically.

Step 3: Save Product

Click Update.

Troubleshooting & Fixes

Audio Not Playing?

Check:

  • Bucket is private
  • AWS keys are correct
  • Region matches bucket region
  • File path is correct

This guide helps you protect your audio books using Bunny.net and connect them correctly to your BookChoix theme website.

Please follow the steps in order. If you do not already have a Bunny.net account, you can create one for free at: https://bunny.net

PART 1: Set Up Bunny.net (Storage & CDN)

Step 1: Create a Storage Zone

A Storage Zone is like an online hard drive where your audio files are stored.

  1. Login to your Bunny.net Dashboard
  2. Click Storage from the left menu
  3. Fill in the details:
    Name:
    Example: bookchoix-files
    Region:
    Choose the location closest to your customers
  4. Click Add Storage Zone

Add Bunny.net storage zone

Step 2: Upload Your Audio Files

  1. Open your newly created Storage Zone
  2. Click Upload
  3. Create a folder called:
    audiobooks
  4. Upload your .mp3 audio files into this folder

Example file path:

/jane_fonda.mp3

bunny-upload-audio-files-directly

bunny-upload-audio-inside-folder

Example file path:

/main-audio-files/jane_fonda.mp3

Remember this path. You will use it later in WordPress.

Step 3: Create a Pull Zone (CDN)

A Pull Zone delivers your audio files to your website fast and securely.

Bunny.net CDN add pull zone

  1. Click CDN from the left menu
  2. Click + Add Pull Zone
  3. Fill in the details:
    Name:
    Example: bookchoix
    Origin Type:
    Select Storage Zone
    Storage Zone:
    Select the one you created earlier
  4. Click Add Pull Zone

Bunny.net will now create a CDN URL like:

https://bookchoix.b-cdn.net

PART 2: Secure Your Audio (Anti-Theft Protection)

To stop people from stealing or sharing your audio, you must enable Token Authentication.

Step 4: Enable Token Authentication

  1. Open your Pull Zone
  2. Click Security from the left menu
  3. Click Token Authentication
  4. Turn ON → URL Token Authentication

Bunny authentication token

You will see a Security Key. Copy this key. You will paste it into WordPress later.

Step 5: (Optional) Enable IP Validation

  • Enable IP Validation if you want audio to work only for the buyer
  • If the link is shared with someone else, it will not work

This gives extra protection but may block users with changing internet connections.

PART 3: Configure BookChoix Theme (WordPress)

Now we connect Bunny.net with your BookChoix theme website.

Step 6: Open Theme Settings

  1. Login to WordPress Admin
  2. Go to:
    Appearance → BookChoix Options →Shop settings → Bunny.net Settings
  3. Under Bunny.net Audio Settings

Step 7: Fill in Bunny.net Details

Bookchoix Bunny audio video streaming settings

Enter the following:

  • Pull Zone URL
    Example:
https://bookchoix.b-cdn.net
  • Security Key
    Paste the key copied from Bunny.net
  • Token Expiration Time
    Example:
3600

(This means the link works for 1 hour)

  • Enable IP Validation
    Set Yes only if you enabled it in your Bunny.net account
  • Click Save Changes

PART 4: Add Audio to WooCommerce Products

When creating or editing an Audio book product, you will see BookChoix custom fields.

add-bunny-audio-file-path

Step 8: Add the Main Audio book (Paid)

Find the field:

Add your Main audio book

Enter only the file path, not the full website URL.

✅ Correct:

/previewbooks/jane_fonda_full.mp3

❌ Wrong:

https://bookchoix.b-cdn.net/audiobooks/jane_fonda_full.mp3

 

Step 9: Add the Preview Audio (Free Sample)

Find the field:

Add your Preview audio book

Again, enter only the file path.

Example:

/mainbooks/jane_fonda_sample.mp3

Save the product.

 

Frequently Asked Questions (FAQ)

My audio is not playing. What should I check?

  • Make sure the Security Key in WordPress matches Bunny.net
  • Make sure the file path starts with /
  • If you have created a folder in the Bunny storage, then the file path should be like /foldername/filename.ext otherwise the file path should look like /filename.ext
  • Check the file name carefully
    (Song.mp3 is different from song.mp3)
  • Make sure the file exists in Bunny.net Storage

What does “Token Expiration” mean?

It controls how long the audio link works.

Example:

  • 3600 = 1 hour
  • After 1 hour, the link stops working

This prevents users from sharing the link with others.

What is IP Validation?

  • It locks the audio to one internet connection
  • If someone shares the link, it will not work
  • Useful for extra protection
  • Not recommended for users with unstable internet

Why Use Bunny.net for Video Streaming?

Bunny.net helps you:

  • Protect your video files from direct downloading
  • Stream videos securely to authorized users only
  • Use expiring, token-based secure URLs
  • Deliver fast video playback worldwide

BookChoix supports Bunny.net secure video streaming by default. If you do not already have a Bunny.net account, you can create one for free at: https://bunny.net

PART 1: Configure Bunny.net Stream Settings (Video)

Step 1: Login to Bunny.net

  1. Open https://bunny.net
  2. Login to your Bunny.net account
  3. Go to the Dashboard

Step 2: Create a New Video Library

  1. From the left menu, click Stream
  2. Click Add Video Library
  3. Enter a library name
    (Example: BookChoix Video Library)
  4. Choose the Storage Region closest to your customers
  5. Click Create Library

bunny.net add video libary

bunny.net add video library name

 

This library will store all your video book files.

Recommended Security Settings

Inside Security & Privacy, enable the following:

  • Token Authentication → ON
  • Allowed domains (optional) → Enter your website link
  • Disable Direct Play → ON
  • Block Direct URL File Access → ON

These settings ensure:

  • Videos cannot be opened directly
  • Links expire automatically
  • Users cannot share or reuse video links

 

Step 3: Enable Secure Token Authentication

  1. Open your newly created Video Library
  2. Go to Settings
  3. Open Security & Privacy
  4. Enable Token Authentication
  5. Click Generate and Copy the Token Key

 

bunny.net general Token authentication key

 

Important note:
This Token Key is required by BookChoix to generate secure video URLs.

Step 4: Enable MediaCage DRM (Optional but Recommended)

  1. Go to Settings → Security → DRM
  2. Enable MediaCage DRM ( MediaCage DRM – Basic or Enterprise)

Note:

  • DRM adds an extra layer of protection
  • DRM does not affect normal video playback inside BookChoix Theme

Bunny.net secured Video DRM protection

Step 5: Configure Allowed Domains

  1. Inside the Video Library
  2. Go to Settings → Security & Privacy
  3. Find Allowed Domains

What is “Allowed Domains”?

  • This is the list of websites that are allowed to play your videos
  • Only domains listed here can access the videos

How to configure it correctly:

  • Add your website domain
    Example:

    yourwebsite.com
    www.yourwebsite.com

bunny-add-allowed-domainsStep 6: Upload Your Video Files

  1. Open your Bunny.net Video Library
  2. Click Upload
  3. Upload your video files
    (Recommended formats: .mp4 and, .webm)
  4. Wait until processing is completed
  5. Copy the Video ID as shown in the below image.

Bunny.net upload video file and copy ID

Bunny.net will generate a secure stream URL for each video.

PART 2: Add Bunny.net Stream Key to BookChoix Options

Step 7: Open BookChoix Options

  1. Login to WordPress Admin
  2. Go to Appearance → BookChoix Options → Shop Settings →Bunny.net settings

Bookchoix Bunny audio video streaming settings

Step 8: Enter Bunny.net Video Stream Key

  1. Find the field Bunny.net Stream token authentication key
  2. Paste the Token Key copied from Bunny.net in step 3
  3. Save the settings

This allows BookChoix to generate secure, expiring video URLs automatically.

PART 3: Add Secure Video URLs to WooCommerce Products

BookChoix uses custom product meta fields for video books.

Step 9: Edit Your Video Book Product

  1. Go to WooCommerce Products → All Products
  2. Edit your video book product
  3. Scroll down to the Product data → BookChoix Add Book Attachments → select book type as “Video Book” → Select “Bunny stream” as video source.

Bookchoix supports bunny.net video streaming

Step 10: Add Main Video Book (Paid Video)

  1. Find Add your Main video book
  2. Copy & paste the Video library ID from your bunny.net dashboard to the Library ID field.
  3. Copy & paste the Video ID from your bunny.net dashboard to the Video ID field.
  4. Save the product

Bunny.net copy video library id

bunny upload cop video id

This video:

  1. Is accessible only after purchase
  2. Uses secure, expiring access and IP restricted
  3. Cannot be downloaded or shared

Step 11: Add Preview Video Book (Free Sample)

  1. Find Add your Preview video book
  2. Copy & paste the Video library ID from your bunny.net dashboard to the Library ID field.
  3. Copy & paste the Video ID from your bunny.net dashboard to the Video ID field.
  4. Save the product

This video:

  • Is accessible to all visitors
  • Still protected by Bunny.net security
  • Cannot be accessed directly

Important Security Notes 

  • Do NOT use raw file URLs
  • Always use Bunny.net stream URLs
  • URLs expire automatically
  • Copying the link will not work later
  • Videos cannot be accessed without permission

What Happens After Setup?

  • Customers can stream purchased video books
  • Video URLs are protected and time-limited
  • Shared links will stop working
  • Better protection against piracy
  • Smooth playback inside BookChoix video player

Common Questions

Can customers download the video?

No. Bunny.net prevents direct video file access.

Can users share the video link?

No. Links expire, no direct access and are protected by token authentication.

Do I need technical knowledge?

No. Only copy and paste the required values.

WPShapere includes a built-in Detach License feature that allows you to safely remove a license from one domain and activate it on another.

When should you detach a license?

  • When you are moving your website to a new domain or server
  • When you no longer want to use WPShapere on the current website
  • When you want to reuse the same license on a different domain

Detach license of WPShapere

Steps to Detach the License

  • Log in to your WordPress Admin Dashboard of the website where WPShapere is currently activated.
  • Go to WPShapere Options → Manage License.
  • Click the Detach License button.
  • Once detached, the license will be released from this domain.
  • You can now activate the same license key on a new domain.

⚠️ Make sure you detach the license before deleting the website or resetting the database.

Important Notes

One license = one domain
A license key can be active on only one domain at a time.

License keys are plugin-specific
A WPShapere license cannot be used for any other plugin (such as WpAlter or other products).

We cannot reset licenses from our side
Although we maintain a record of activated domains, we’re unable to verify whether a specific website or plugin installation still exists. For this reason, licenses need to be detached from within the original website before they can be used on another domain.

The FlexiPress WordPress Business Theme makes it easy to design custom theme headers that match your brand and layout — all without writing a single line of code. Follow the steps below to create and apply a header using Elementor.

Step 1: Go to the FlexiPress Headers Section

  1. Log in to your WordPress Dashboard.
  2. In the admin menu sidebar, go to FlexiPress → Headers.
  3. Click Add New to create a new header.
    Tip: If you already have pre-designed headers, you can click Edit to customize them.
  4. In the Template Type dropdown on the right hand side, select Elementor Full Width.
  5. Click the Edit with Elementor button to open the Elementor editor.

 

 

Design Your Custom Header

  1. In the Elementor editor, start building your header using:
    Containers or Sections
    Columns
    Widgets like Logo, Navigation Menu, Button, Search, etc.
  2. Customize the design — adjust spacing, colors, fonts, and alignment to match your site’s branding.
  3. Once you’re happy with the design, click Publish to save and publish your header.

Step 2: Assign a Header to a Specific Page

Want to show a custom header on just one page? Here’s how:

  1. From the WordPress Dashboard, go to Pages → All Pages.
  2. Click Edit on the page you want to customize.
  3. Scroll down to find the FlexiPress Page Settings section (below the page editor).
  4. In the Header Selection dropdown, choose the header you created.
  5. Click Update to apply your changes.
Note: A header assigned to a specific page will override the global (default) header for that page.

Step 3: Assign a Header to All Pages (Global Header)

If you want the same header across your entire website:

  1. Go to FlexiPress → FlexiPress Options from the dashboard.
  2. Scroll to the Elementor Header Settings section.
  3. Choose your custom header from the dropdown list.
  4. Click Save Changes.

Now, your chosen header will appear across all pages — unless a different one is assigned to an individual page.

You can simply upload a logo to your website using either the FlexiPress Theme Options or the FlexiPress Logo Elementor Element (if you use custom Elementor header/footer builder). Follow the steps below to complete the process.

 Uploading a Logo via FlexiPress Theme Options

Note: This won’t work if you’re using custom Elementor header/footer builder
  1. Log in to your WordPress Dashboard.
  2. Navigate to Flexipress-> FlexiPress Options -> Default Header Settings.
  3. Locate the Logo Settings section.
  4. Click the Upload button.
  5. Select your logo file from your computer.
  6. Click Open, then Save Changes.

 

 

Uploading a Logo Using the FlexiPress Logo Elementor Element

In the FlexiPress Theme, you can manage headers and footers using the built-in FlexiPress Headers and FlexiPress Footers custom post types.

       Step 1: Create or Edit a Header/Footer

  1. Go to your WordPress Dashboard.
  2. Navigate to FlexiPress Headers -> Add New (for a new header) or FlexiPress Headers (to edit an existing one).
  3. Enter a title for the header and click Publish.
  4. Click Edit with Elementor to open the Elementor editor.

     Step 2: Add the FlexiPress Logo Element

  1. Search for the FlexiPress Logo element in the Elementor widget panel.
  2. Drag and drop the FlexiPress Logo element into the header area.
  3. Click on the element to open the settings panel.
  4. Click the Choose Logo image option and select your logo file.
  5. Customize the logo size, Link target as needed.
  6. Click Update to save the changes.

Theme installation and activation

Getting started with the FlexiPress WordPress theme is simple. Just follow the steps below to install and activate the theme on your website.

  1. Access Your WordPress Dashboard: Log in to your WordPress admin area.
  2. Navigate to Themes: In the left-hand menu, click on Appearance, then select Themes
  3. Add New Theme: At the top of the Themes page, click the Add New button.
  4. In the search bar, type “FlexiPress” and press Enter.
  5. Locate the FlexiPress theme in the results.
  6. Click Install, then Activate.

Add theme in WordPress

Install FlexiPress from WordPress

How to Install The FlexiPress Theme from WordPress.org

  1. Go to Google in your web browser.
  2. In the search box, type “FlexiPress WordPress theme” and press Enter
  3. Look at the first few search results
  4. Click on the first result that leads to the official WordPress.org theme page or the developer’s website.
  5. On the theme page, locate the Download button.
  6. Click Download to get the theme’s .zip file, which can be uploaded manually in WordPress.

Activating the FlexiPress Lite Core Plugin

To activate the FlexiPress Lite Core plugin, follow these steps:

  1. Visit ThemeShopee.com (official website).
  2. Click the Download FlexiPress Lite Core button to get the plugin’s .zip file
  3. Log in to your WordPress Admin Panel. and Go to PluginsAdd New.
  4. Click the Upload Plugin button at the top, Choose File, select the downloaded .zip file, and click Install Now.
  5. Once installed, click the Activate button to enable the plugin on your website.

Activating the FlexiPress Pro Core Plugin

  1. Purchase the Pro version
    Visit ThemeShopee.com and purchase the FlexiPress Pro Core plugin.

  2. Download the plugin
    After purchase, log in to your LemonSqueezy account using the email you used at checkout.
    Download the FlexiPress Pro Core .zip file from your account dashboard.

  3. Install the plugin
    Log in to your WordPress Admin Panel and go to Plugins → Add New.

  4. Upload the plugin
    Click the Upload Plugin button at the top. Choose the downloaded .zip file, then click Install Now.

  5. Activate the plugin
    Once installed, click the Activate button to enable the plugin on your website.

The BookChoix Core plugin is a required component for the theme to function correctly. It includes all essential features and the custom Elementor widgets used in the theme.

  1. To update the plugin, follow these steps:
  2. Go to Plugins > Installed Plugins.
  3. Deactivate the BookChoix Core plugin.
  4. Delete the plugin. (This will not remove any of your website contents or any customized settings.)
  5. Navigate to Appearance > Install Plugins.
  6. Reinstall the BookChoix Core plugin. This will automatically download and install the latest version from our server.
  7. Activate the plugin again.

How to update BookChoix core plugin

Important Note:

This BookChoix core plugin version 1.8.1 released on 17 Dec, 2024  is mandatory due to a major change introduced in Elementor version 3.0.

Elementor has replaced the old “Schemes” system with a new “Globals” feature, allowing users to define unlimited global colors and typography settings. This is not a bug in the App Core plugin. The issue originates from Elementor’s sudden change, which deprecated the old Schemes mechanism without prior notice. For more details, refer to Elementor’s official documentation on this change:
 Elementor Developer Docs – Deprecation Example

This guide explains how to edit the elements on your BookChoix BookStore theme‘s homepage built with Elementor. The homepage features various widgets showcasing products (featured, top selling, specific categories, etc), categories, testimonials, Book authors and blog posts.

Before you begin:

Make sure you have administrator or Editor access to your website.

Editing Elements

Open the Homepage in Elementor:

  • Go to Pages in your WordPress dashboard.
  • Choose a Homepage and hover over it.
  • Click the blue button “Edit with Elementor“.
  • Select the element you want to customize:

Click on the specific element you want to edit on the homepage preview. This will highlight the element and open the settings panel on the left side.
Customize the widget:

The left sidebar contains settings specific to the chosen widget. Use these settings to modify the content and appearance of the element.

List of widgets added on homepage 1:

  • Product Slider (Recent, Featured, Top selling, Categories, Single IDs and Tags, Top rated, On sale)
  • Category Images
  • Authors Widget
  • Testimonials Widget
  • Recent Blog Posts Widget

Product Slider

WooCommerce featured Products slider

This widget displays a carousel showcasing products based on various criteria

Recent: Displays recently added products.
Featured: Showcases products you’ve marked as “Featured.”
Top selling: Highlights your best-selling products.
Categories: Displays products from specific product categories.
Single IDs and Tags: Allows you to select individual products or products with specific tags.
Top rated: Displays products with the highest average ratings.
On sale: Showcases products currently on sale.

Showing Category Images

WooCommerce Ctargories widget

This widget displays images representing product categories.

Customization options: You can choose the  categories that you want to be displayed and number of columns to be displayed on.

Authors Widget

This widget showcases your Book’s authors with their avatars and bios (if provided).

Customization options: You can choose which authors to display and how their information appears.

Testimonials Widget

Testomonials post type

BookChoix Testimonials Widget

This widget displays customer testimonials to build trust and credibility.

Before adding the widget, ensure that you have added testimonials posts in the WordPress dashboard.

Customization options: You can edit existing testimonials or add new ones. Modify the author name, quote content, and avatar image.

Mailchimp Newsletter Subscription Form

This widget displays a subscription form that integrates with your Mailchimp account using MC4WP.

Integrating with MC4WP:

  1. Create a Mailchimp account: If you don’t have one already, sign up for a free Mailchimp account.
  2. Set your API key in the plugin settings.
  3. Configure the widget: In Elementor widget, select the Mailchimp Newsletter Subscription Form widget or put the newsletter form ID that is created inside the MC4WP -> Forms.

Find Mailchimp form ID

Add Mailchimp form

Recent Blog Posts Widget

WordPress recent posts slider

This widget displays snippets of your latest blog posts, encouraging visitors to explore further.

Customization options: You can control the number of posts displayed, post filter, order and orderby sorting and customize the layout.

This may be due to the reason that the Envato API server may be down at the time when you try to activate the license. You may try after few minutes.

There could be another reason that your server does not with installed cURL library or may not allow running the WordPress function wp_remote_get(). You can check if all server requirements are fulfilled here https://yourwebsite/wp-admin/admin.php?page=wpshapere_help

Please read the following article to know how to enable cURL in your server if not installed https://askubuntu.com/questions/259681/the-program-curl-is-currently-not-installed or contact your hosting provider to ensure that your hosting account is installed with cURL module.

If none works, kindly open a support ticket along with your WordPress admin login details so we can manually validate your purchase code. Please ensure that you have enabled the plugin editor and file writing permission for the plugin editor before opening support ticket.

Back To Top

We use cookies to give you the best online experience. By agreeing you accept the use of cookies in accordance with our cookie policy.

Privacy Settings saved!
Privacy Settings

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. Control your personal Cookie Services here.


  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services