Using Bookshelf 2.0

Before using Bookshelf, please make sure that you have setup the plugin correctly. To ensure the plugin is setup correctly:

  • Go to Bookshelf->Settings
  • Enter your paypal email address
  • Select your currency type and save.

Instructions for using Bookshelf:

  • Create or Edit a post (or page)
  • In the PDF file box, click “Choose file” button and upload a file.
  • In the Custom Fields box, add price(custom field) without currency symbol.
  • Publish the post to start selling.

A small overview of how we handle PayPal IPN:

  • The user(s) click on “Buy now”
  • After confirming the payment, PayPal will notify Bookshelf plugin on your site.
  • If the payment is complete and valid, the buyer will receive an email with the download link and some billing information. Bookshelf will log all completed payments.
  • If the payment is incomplete or invalid, the buyer will receive an email with some billing details.
  • In all cases, the admin will receive a copy of the email sent to the buyer.
  • In case of pending or incomplete payment, the product should be sent to the buyer manually via email.

158 Responses to "Using Bookshelf 2.0"

    • You are welcome Douglas.

      The feedback given by all Bookshelf users has helped us in making it better. I’d like to personally thank you for your feedback.

      Best Wishes,

  1. Hi Reuben,
    I am using,… or should I say… trying to use your Bookshelf plugin, which looks like exactly what I need and it looks so easy to set up but I’m not getting it right. The button won’t show. I have an e-book and supplements, the supplements work just fine with WP simple payment shopping cart but of course I can’t use it for the e-book. What am I doing wrong?
    Kind regards,

    • Hi Terry,
      This plugin is not meant to run along with other shopping cart plugins.
      If the paypal button doesn’t show up, it either means you have not setup the plugin or a file is not uploaded. Please follow the steps mentioned above in the blog.

  2. Thanks Reuben.

    I checked and it all seems fine, but!! I’ve tried just text in the custom fields and that too doesn’t work so it must be the Custom fields setup that I need to attend to.

    Kind regards

  3. Hi Reuben,

    I love this plugin, its just so simple to implement, so thank you, and thanks for the clear instructions.

    However I have just had someone email me and say they have paid for the e-book but did not receive it (I have confirmed the payment in PayPal which did go through the plugin fine). It has also not shown up in the Bookshop Sales.

    PayPal shows the order as complete so it should have told bookshelf if I understand everything. Is there a time lag or have I done something incorrectly.

    Thanks for your help in advance

    • Hi Michelle,
      In very rare cases PayPal notifies slowly. If Bookshelf is notified about the payment, your buyer will get an email with the download link and you will get a email containing copy of payment details.

      If you didn’t get any email about the payment, please check if your server is denying requests to/from PayPal.

  4. Hi Reuben,
    I wrote you about a week ago. The settings are correct – you’ve made it so simple one cant go wrong – I still can’t get bookshelf working. Do I need a certain kind of PayPal account? or should they all work?
    Kind regards

    • Hi Terry,
      You can use any type of PayPal account. Have you uploaded the PDF file and added custom field “price” (without quotes) ?. What theme are you using?

    • Hi Reuben,
      Yes I’ve done the upload et al.
      The details of the theme are as follows; “Expert WordPress 1.0 is a three-column (or two if you choose so), widget-ready wordpress theme optimized for SEO, AdSense and Speed. It is easy to use and highly customizable. Theme based on “Unnamed” by Xu Yiyang.

    • Hi Terry,
      Bookshelf uses the_content or the_excerpt filters to show the PayPal button. If the theme does not use those filters or removes them, the button will not be shown. To rule out if it is a theme issue, try using TwentyTen theme and also disable other plugins to make sure they are not conflicting.

      The theme you have mentioned has not been updated since 2008.

    • Hi Kenan,
      You are welcome!!
      Currently it is not possible to change the position of “Buy now” button.

    • I have followed them as best I could and still nothing…could you elaborate on the custom fields? Under ‘name’ what do I put? Under ‘value’ what do I put, and will it automatically display the custom field or is there something additional I need to do?

    • Under ‘name’ put “price” without quotes and under ‘value’ put the price of your ebook without any currency symbol.

  5. Hi,

    I am looking for a plugin that will serve epub and mobi files from wordpress. Either free or paid. Needs to autodownload to iPads and Nooks with epub or have user enter their Kindle email and get theirs that way through

    These will be copyrighted so I want to have DRM added to the books so they cannot be redistriputed.( The free books will be CC or public domain.)

    Is this too big an operation for your plugin?



    • Bookshelf can be modified to sell epub and mobi files. It is possible to set restrictions on number of downloads for each user but it is not possible to implement DRM with bookshelf plugin. If you are interested in bookshelf customization then you can contact us via email

  6. Hi, I’m trying to use this plugin and I’ve installed it exactly as your instructions say. When I click on ‘upload pdf file’ and choose a pdf file, the progress bar gets to the end and then I always get the error message:

    Sorry, your file wasn’t uploaded: 404

    What can I do about this?

    Thanks, Kenny

    • Hi Reuben, thanks for getting back to me.

      I have made sure the folder uploads/bookshelf_files is writable with a code of 777 but I’m still getting the error mesage:

      Sorry, your file wasn’t uploaded: 404

      Is there anything else I can try? I’ve uninstalled and reinstalled a few times and that hasn’t worked either.



    • Hi Kenny,
      You can enable debugging for the uploader. Open bookshelf/includes/metabox.php and add this line debug: true, on 29th line. After adding that line upload the PDF file you will see a text box at the bottom of the page. Copy the details from that textbox and send it to us.

    • Hi Reuben, thanks for your help with this, it’s is very much appreciated!

      Here is the code from the box:

      —SWFUpload Instance Info—
      [code removed]

    • Hi Kenny,
      There seems to be some problem with your permalink structure, please try using default permalink structure.

    • Hi Reuben, again, I appreciate you helping me with this.

      I have swtiched to default permalink structure but now when I try to upload I get a different error code:

      Sorry, your file wasn’t uploaded: 406

      Anything I can do about this?

    • Hi Kenny,
      406 error means the URL is not acceptable. You will need to contact your hosting support to resolve this issue.

    • Hi Reuben, thanks, I’ll contact my hosting provider but what am I asking them? Which URL is not acceptable?

      Once again, thanks for your help with this. You’ve really gone out of your way to help and I can appreciate you must be busy.

    • Hi Kenny,
      Most of the time it is mod_security module which causes 406 error. Your server settings are dis-allowing the bookshelf upload url i.e /wp-contnet/plugins/bookshelf/includes/upload-pdf.php. You will need to check your server error logs and report them to your host.

    • Hi Reuben, thanks again for helping me with this.

      I contacted my hosts who disabled mod_security for me, then I started getting the error:

      Sorry, your file wasn’t uploaded: 500

      I told them about this and they recreated the issue for themselves to see. Once they did that they sent me the following message:

      “We are getting the following messages in the error log while trying to upload pdf file as mentioned by you.
      Premature end of script headers: /home/essentia/public_html/wp-content/plugins/bookshelf/includes/upload-pdf.php
      It seems to be an issue with the wordpress plugin bookshelf. I would suggest you to look into the plugin settings. We are very sorry to say, we do not support requests that deal with coding. If you have any server wide issue then do let us know to assist you further.”

      Is there anything you can do to help me with this?

      Thanks for your help.

    • Hi Kenny,
      I need to know your php and server configuration to debug further. I think the memory is getting exhausted, please increase your PHP memory. By the way which host are you on?

    • Hi Reuben, my host is a company called

      They just got back to me with this message:

      “I have created a php.ini file at the location public_html/php.ini and modified .htaccess file so that you can edit the memory accordingly. Your current PHP memory is 64MB. You may edit the ‘memory_limit’ in public_html/php.ini file to increase the memory limit.”

      Once I figure out how to increase the memory limit, what shall I increase it to?

      Thanks for all your help, you’ve really been terrific!

    • Hi Kenny,
      64MB should be enough to upload files. Anyways try increasing it to 256MB. Also make sure there aren’t any restrictions on file uploads.

    • Hi Reuben, my host said the following:

      “Please do not set it to 256MB. That is 7% of the server memory and shouldn’t be used up by 1 account.”

      They said I could set it to 128MB though, so I did that and I’m still getting the error message:

      Sorry, your file wasn’t uploaded: 500

      Sorry to be such a pain but I really like your plugin and I just want to get it to work as it would be perfect if I could get it to work!

      Is there anything I can do about it?

    • As well as the last message I sent, I’ve also noticed that in Internet Explorer 8, the choose file button doesn’t even appear! Can’t imagine what causes that.

      Is there someway I can bypass the upload file part by just using the ftp in dreamweaver?

    • Hi Kenny,
      The upload button shows up in IE8. You must have flash to see the button. Yes you can use FTP for file uploads. Upload the PDF file to /upload/bookshelf_files/ and paste the name of the file(including extension) in the current file text field and publish the post.

      Enable the debug mode again and send the debug information so that we can see what is causing the 500 error. Please disable other plugins as they might be conflicting and revert to twenty ten theme (if possible)

    • Hi Reuben,

      My hosts managed to solve the problem, here is the message they sent me:

      “The issue was due to wrong permissions assigned – I have corrected the folder permissions of ‘/public_html/wp-content’ directory from 777 to 755, and the file upload seems to be working fine now. Please note that assigning wrong permissions to the files and folders can cause the php scripts not to work properly, and also cause potential security issues. The recommended file permissions are 644 (including php scripts) and folder permissions are 755.”

      Thank you so much for your time and effort in helping to solve this issue, the upload works fine now. Thanks again for your help, Kenny

    • Hi Kenny,
      Glad you got it working.

      As far as I know if it works for 775 then it should work for 777 as well.

    • Bookshelf works only with posts and page. However, you can make it work for custom post types. Open bookshelf/includes/metabox.php and add this line on 10th line:
      add_meta_box(‘bookshelf-books’,’PDF file’,’display_bookshelf_upload’,’customposttype’,’normal’,’high’);
      Replace ‘customposttype’ with your custom post type name.

    • Hi again, I’ve written this code, like you said:

      add_meta_box(‘bookshelf-books’,’PDF file’,’display_bookshelf_upload’,’pol-ekon’,’normal’,’high’);

      and now I can see Bookshelf’s Upload PDF file option, but when I try to upload a file it doesn’t work, it does nothing

    • You also need to change line 84
      if( isset( $current_screen->post_type ) && in_array( $current_screen->post_type, array(‘post’, ‘page’) ) && is_admin() ) {
      if( isset( $current_screen->post_type ) && in_array( $current_screen->post_type, array(‘post’, ‘page’,’pol-ekon’) ) && is_admin() ) {

    • Thanks for your help, now the upload process of the pdf starts, but when I click UpdatePost or Preview buttom the pdf disappears.

    • I have tried the plugin with custom post types and I can’t reproduce the issue you are having. Make sure you are managing custom post types the right way.

    • The code seems right.

      Try this:
      Change 70th line in includes/metabox.php
      from if( !current_user_can( “edit_{$_POST[‘post_type’]}”) )
      to if( !current_user_can( “edit_post”, $post_id) )

    • Thanks Reuben, now it works correctly. Only one thing, I’ve uploaded a pdf document to try the plugin and now I can´t delete it, how can I do that?
      Thanks again

    • thanks for your help, Reuben. I’ll try the new version and I”ll talk you about it. Thanks again

  7. Hi Reuben,

    Wonderful awesome idea for a plugin. It was just what I was looking for. I don’t know much about coding, so I have no idea what to do with this error message

    .htaccess file does not exist. Please add the following code to .htaccess file in /home2/breakin1/public_html/theinnatetruth/wp-content/uploads/bookshelf_files directory
    deny from all

    Can you guide me what to do here? Thanks!

    • Hi Mark,

      Create a .htaccess file in /wp-content/uploads/bookshelf_files directory and enter the following line in it
      deny from all

    • Hi Mark,
      If you have followed the steps correctly then you would see a paypal buy now button. The most common mistake everybody does is “They forget to enter price in custom fields”.

    • I’m trying doing that, but I can’t. I empty the ‘Current file’ field, when I update it the pdf file appers again. And if I try to delete the pdf file inside uploads/bookshelf_files folder, the FTP client tells me this folder doesn’t exist, so I can´t delete it.

    • Hi Ramon,
      Its a bug in Bookshelf, you can’t unlink the PDF/zip file attached. I will update the bookshelf in next hour. Regarding the FTP issue it is related to your hosting account. Please contact your hosting support.

      Thank you very much for your feedback.

  8. Is there a way to use this plugin but have a $0 fee until I change it? I want to use this plugin, but I am giving my ebook away for one month. Then I will be selling it. I don’t want to have to change programs to do that, but I do need people to register with their email to get it free, just as they do to purchase it. Is there a way to do that here?


  9. I have a new wordpress installation and have installed the Bookshelf module.

    Everything seems to work, but the sales page never updates, and all we get when testing is the “Pending” email with a link to a page that say “download no longer available”

    • The sales page only displays completed payments. You cannot download the book until the payment is complete.

    • Hi Reuben,

      I have completed 4 payments using another PayPal account. Each one received the “Pending” email, but did not get a link that allowed me to download the ebook.

    • Hi Reuben,

      I just tested it again. I click the buy now button, go to PayPal, and pay my money using a different account. I receive a Payment receipt from PayPal, and a Payment Pending email from Word Press. if I click “Return to website” from PayPal, I get the success message from WordPress. “Order Successful etc… redirect in 5 seconds”

      Still no sale in the admin and I can’t download the ebook. Could it be a permissions problem? I noticed that the files that the module uploaded are all set to 644

    • Please make sure the payment is complete in PayPal logs. Sometimes, payment receipts will be pending (especially in case of e-checks). The book will be available for download only for completed payments.

      The issue is not caused by the file permissions.

  10. Hi,
    is there any way to change sender’s name?
    buyer will receive an email
    from “WordPress ”
    That name “WordPress” is not appropriate.
    Thanks for great plugin!

    • No, the buyer will not receive an email from “WordPress at your domain”. The mail is sent from “billing at your domain” email address. In future release I will include an option to change the email address.

  11. When I select a file to upload I get this error message:

    Sorry, your file wasn’t uploaded; File is zero bytes or cannot be accessed and cannot be uploaded.

    I’ve tried it on two different WP installations and also tried deactive, delete, then re-installed and activated.

    The .htaccess file has deny from all, and the bookshelf_files is set to 777.

    Thanks, RKB

    • 777 folder permission is causing problems for Bookshelf. Change the folder permissions to 755.

  12. I can’t get the custom emails to work. Whenever I run a test the email I receive has a subject “Billing details” and the order and link details, but it does not contain the text that I have entered into the: Successful order message field or the Successful order subject on the Bookshelf settings page.

    • Thank you for reporting the bug. Please update Bookshelf to fix the issue. You will need to re-save your custom message settings.

  13. I am using the bookshelf and have tested the first ebook sale, which worked up until the actual link being sent. The buyer and myself were notified of the check clearing and he received the cleared email, but no link was connected to the email. What did I do wrong? Is there a code I need to enter? A link I need to add?

  14. Hello,
    Thuis is my third attempt to try and get some help on using my bookshelf. I was able to get the bookshelf to work up unitl the customer wanted to download the book. The customer does not get an email with the link to download the book. I have checked all the paypal correspondences and everything cleared. Is there another area I should be putting a link in for paypal to send??

    • Hi Marc,

      Please make sure your server allows sending mails using PHP.

      If the user pays by e-check, you need to send the book manually. Currently e-checks are not automated.

    • Morning Rueben,

      Thanks for the response. I assume that WordPress and Bluehost allow PHP mail delivery. I had no problems with all the emails and confirmations between the two. Hmm..I would ahve to send all books manually?? I wonder then if all payments made through PayPal are echeck then.That may be a bit of a nuisance.
      Thanks for the response.

    • Bluehost allows PHP mail() function. In order to make it work, you need turn SMPT on.

      Bookshelf works with PayPal IPN (Instant Payment Notification). Bookshelf will send download link via email for instant payments only.

  15. Now that Book Shelf has been linked to PayPal, the option to add additional quantities that were previously working with my PayPal Buy-Now buttons no longer appear. It automatically charges customers for one copy only. But I want customers to be able to purchase multiple licenses at once to send gifts to friends (by leaving me the receipients email addresses in sender instructions in PayPal). Is there a way to override the default, maybe by removing the price under BookShelf options? Many thanks for your response

    • Thanks for the prompt answer. I hope the next edition of Book Shelf will include a “Send to a Friend” or multiple purchase option. Those would be truly appreciated features.

  16. Hi, Thank you for the plugin.
    I have setup the plugin correctly but have difficulty in ussing it.
    I’m sorry for my very stupid question but when I Create or Edit a post (or page), I don’t know what is “the PDF file box”, and doesn’t see any “Choose file” button and upload a file. Maybe you just mean the same button I use to insert a media.
    then by “Custom Fields box, add price(custom field) without currency symbol”, you mean enter which name and which value in the custom fields ?
    Sorry for my very bad english and thanks again.
    philippe. Paris.

    • You can find the “PDF file” box beneath the post editor. If you cannot see the box, click on “screen options” on the top right corner in the edit post page and check “PDF file”. The custom field name should be “price”(without the quotes) and the value should be the price of the e-book without any currency symbols.

    • You can create custom page/archive template and query(WP_Query) using meta_key=price to retrieve all bookshelf posts.

      If you want to sell multiple files, zip the files and attach them.

  17. Reuben,
    The person has paid. Sale is completed, but they are not receiving the download email. Not sure I understand how to “turn on” SMPT in Bluehost.
    This is not working…
    any help?

  18. Hi Reuben,

    Like Terry, I have followed all of the steps in the blog in my attempts to get Bookshelf to work. I uploaded my file, set the custom field correctly and published the site. The site shows as expected, but no buttons. I’ve tried it using TwentyTen and using Pagelines. I’m using Bookshelf 2.0.2 and WordPress 3.1.2 and am viewing the site with Firefox 4.0.

    Any ideas?

    Thank you!

    • Hi Nick,

      Please update to the latest Bookshelf version 2.0.3. The new version will help you in troubleshooting the issues. Go to Bookshelf->Troubleshoot and enter a post ID to run the tests.

  19. Dear Reuben,

    thank you so much for this plug inn! It’s exactly what I was looking for!!
    I did the first testing and everything is working just fine but I have some more questions.

    My website is not English so I would like to change the automatic “Download link for your purchase:” text…
    Is it possible?
    And for the billing@mydomaine mail adresse, the sender is WordPress… is there a setting where I can change that?

    thank you very much for your help!

  20. I am looking for an ebook download plugin. I came across yours which seems simple to use. I want to offer the same book in multiple format epub, mobi and pdf. Is this possible? I tried to upload an epub file and got a 500 error.

  21. Hi Ruben,

    I am getting this following error message,
    ‘Sorry, your file wasn’t uploaded: File size exceeds allowed limit.’
    Is my e-book too big? Is there something I can do to make it work? Thanks in advance.

    • Increase the upload limit in your php settings. Contact your hosting support for further instructions on changing upload limits.

    • Oh, I commented out this line in bookshelf/includes/functions.php:

      //add_filter( ‘the_excerpt’, ‘bookshelf_buy_button’ )

      It got rid of the excerpt’s paypal button, but is that going to do what I want only, or are there wider repercussions?

  22. Are you able to add the ability for us to LIMIT the number of downloads for an ebook? For example, I want to limit the people to only 1 download of the ebook when they purchase it. Possible? Will you be adding this feature?

  23. Hi,

    I installed the plugin (which seems perfect for my needs) and am using Bluehost – and everything seems to work perfectly except that no email is being sent to the customer with the download link. They get an email receipt from paypal, but no download. I asked bluehost to enable SMTP for me but they say it already is enabled and that php mail is working. Any ideas?

  24. BTW, I just got another msg from BLuehost support saying this: “SMTP is turned on all accounts, you are going to need to see what smtp settings that plugin needs to operate.”

    I genuinely think this is an awesome plugin – so I’m desperate to get it working!

    Thanks again,


  25. Sorry – you can ignore my last comments. Since I got the plugin working beautifully on a different webhost first try – and it is a great plugin – I’ve decided to ask Bluehost for a refund.

    • Thank you for using Bookshelf. In the current version, Bookshelf does not have the feature to show buyer’s email address. I will include this feature in next version.

      Edit: Bookshelf already displays the email address in sales log.

  26. Hi, and thanks for this plugin, which has installed fine. I see no discussion or mention here of the four boxes to be completed: does anyone have suggestions for what to enter?
    – Successful order subject
    – Pending order subject
    – Successful order message
    – Pending order message

  27. I’m trying to change the setting and getting this message:

    .htaccess file does not exist. Please add the following code to .htaccess file in /home/xxxxxxx/public_html/ directory
    deny from all

    • Create .htaccess file in /wp-content/bookshelf_files folder and add the following line:
      deny from all

      Bookshelf will work without the .htaccess file. It is only required to deny users from directly accessing the PDF/zip files.

  28. Hi I’m trying trying to get this to work.

    I up load the file in the pdf and then set the custom value at price and the value 1.99 but it doesn’t show up on the page.

    Any hints? I’ve set up the settings fine..but can’t seem to get the test to run and find the page I’m trying to up load to.

    Thanks so much!

  29. Hi Reuben,

    Great plugin! A question. For now I’m using a site behind a reverse apache proxy and the site is apache password protected. When I upload a PDF in the normal WordPress Media section, there is no problem. The file gets uploaded!

    But when I try to add a PDF file to a page to the bookshelff I do get a 401 error:

    Message in popup: Sorry, your file wasn’t uploaded: 401

    Message in logfile: POST /wp-content/plugins/bookshelf/includes/upload-pdf.php HTTP/1.1″ 401 488 “-” “Adobe Flash Player 10”

    Any idea how to solve this problem?


    • When a directory is password protected, WordPress uses HTML uploader. Bookshelf uses flash to upload files.

      To solve this issue, upload the pdf file to wp-contnet/uploads/bookshelf_files/ and enter the file name(with extension) in the textbox provided below the upload pdf file button.

    • Click on “Screen options” on top right corner of the edit post screen and check “Custom Fields” box.

  30. Hi Reuben

    First of all, thanks for this plugin from Spain.
    I’m trying to use Bookshelf but i can’t. The troubleshoot always says: “Custom field price not found”, and I don’t know why: I configured the settings, I made the htaccess file (blood, sweat and tears), I wrote Price and 3,00 in each place… Then, when I saw that the post didn’t work, I read forums and i saw that to show the custom fields i had to include something like “” in the loop (two days trying to understand what is the loop, a few laughs)… But now, with all this operations done, the message “Custom field price not found” continues killing me, and I don’t know what can I do to make it works. Could you give a clue, please?
    Thanks anyway.


  31. Hi,
    I have problem with upload – I receive info sorry your file wasn’t uploeded: 500.
    Could you please help me in very very very simply words:) I’m not technical person. I can only write:)
    take care:)

  32. This is more of a question: is Bookshelf only intended to sell pdf versions of e-books? I will be having separate versions of the same books available for download for Nook, iBooks, Sony Reader, Kindle, etc.
    Or, is it customary to bundle all the versions in one file and simply let the reader choose which one to use?
    The reason I ask is all I see in the plugin is an option for uploading a pdf file and inserting a price. No other file types.

    • Currently, Bookshelf is only intended to sell PDF and ZIP files. This may be changed in the next version of Bookshelf.

  33. Installed Bookshelf, added the .htaccess file and now I cannot access my blog at all.

    Tried editing the .htaccess file, tried deleting it and still not able to access my blog. This is the error message I am getting:-


    You don’t have permission to access /wordpress/wp-login.php on this server.

    Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
    Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 mod_perl/2.0.4 Perl/v5.8.8 Server at Port 80

    Am absolutely at wits end! How do I rectify this problem? I use filezille as my ftp program and have ‘force hidden files’ checked.

    • The .htaccess file should not be placed in the main directory, it should be placed in /wp-content/uploads/bookshelf_files/

  34. Hi Reuben, my son installed Bookshelf for me about 9 months ago to sell my pdf knitting patterns.I currently have about 400 seperate patterns for sale.
    All was fine until about 3 weeks ago. Overnight all the downloads now give the message that the file is blank or damaged when opened by the buyers. My son has updated to the latest wordpress version. I have tried reloading the files but its still not working.The actual files are fine on the website (my son has checked this somehow) but not working by the time they get to the buyer. I’m sure my son will have updated bookpress to the latest version. We have no idea how to solve the problem, just hoping you do. x

  35. Hi Reuben,

    I have just installed your wordpress plugin for a clients website. There are a few issues with this I am unable to figure out and would like your assistance to help me with.

    if you go to

    That is where I would like the plugin to activate and have noticed that in the footer there is the price at the end of some of the menu items.

    Underneath the footer there is link to bookshelf is it possible to have that removed.

    Many thanks

    • As of now Bookshelf does not support custom placement of buy now button. It will be available in next version.

  36. Hello Reuben,

    Thanks for your plugin, it’s exactly what I’m looking for !

    However I get a strange behavior,

    I get a “403 Forbidden” page, saying
    “The book is not available for download anymore”

    I tried:
    – deactivating other selling plugins (seems to get the same result)
    – the Troubleshoot page gives me the right seller email/price/attached file
    – the Sales page displays “completed” as payment status, but no book title or details.

    Can you help me with that please? Is there something I should try?
    Is there a way to generate “fake” orders in order to try several configurations without having to give money to paypal each time?

    Thank you! 🙂

    • Bookshelf throws 403 error when the PDF/Zip file does not exist on the server or if the buyer tries to download the files after 2 days of successful payment.

      To enable paypal sandbox, you will need to edit two source files i.e functions.php and gateways/ipn.php and replace all the instances of with

    • Hello Reuben,
      I created sandbox accounts and tried again.
      The order is successful,

      An email is sent and received by the customer, however, when clicking on the link I get the same 403 forbidden page, “The book is not available for download anymore”.

      Here is a screenshot of the “Sales” page, it should have recorded two transactions

      The troubleshoot page for the post ID gives back the right email, price (1€) and attached file name….

      Any idea ?

    • Sorry for the delay

      > Make sure the pdf/zip file exists in /wp-content/bookshelf_files

      It seems I had to create the bookshelf_files folder myself, and nothing is uploaded into it when I try to add a new file to one of my blog posts. Any idea? Thx

  37. Hi Reuben,

    Do Bookshelf support “temporary / unique” download link, so a buyer can’t communicate the product to others ?

    Kind regards,

Leave a Reply