Shopify: How to add External Link Buy Now button and remove Add To Cart button

I have some products (eBooks) that are only available to purchase on Amazon so I needed a way to add a BUY NOW ON AMAZON button and also needed to remove the ADD TO CART button.

This solution requires an App that lets you add custom Metadata Fields to your products. I tested a few different free ones, and ended up going with Simple Admin https://apps.shopify.com/simple-meta

This solution also requires adding some custom code to your theme. In this example I am using the free theme called SIMPLE.

STEP 1
Add and install the Simple Admin app to your Shopify store.

STEP 2
Once installed, go to your Apps section and click on Simple Admin to go to its dashboard.

STEP 3
Click on PRODUCTS over in the top right corner.

STEP 4
Choose the product you want add the Buy Now External Link button too, and click the ID number of that product.

STEP 5
Click on the META tab.

STEP 6
Click ADD METAFIELD.

STEP 7
Enter the following information:
KEY: BuyNowText
VALUE: BUY NOW on Amazon.com
VALUE TYPE: String
NAMESPACE: CustomExternalLink
DESCRIPTION: The value is the text the customer will see on the button.
Click SAVE.

STEP 8
Click ADD METAFIELD again.

STEP 9
Enter the following information:
KEY: BuyNowLink
VALUE: https://anydomain.com/some/link/to/product
VALUE TYPE: String
NAMESPACE: CustomExternalLink
DESCRIPTION: Enter external link in the value field. To disable external link, enter the word “none” (without quotes) in the value field.
Click SAVE.

STEP 10
Now go to ONLINE STORE then THEMES then click on ACTIONS for your current theme and choose EDIT CODE.
NOTE: I am using the free SIMPLE theme.

STEP 11
Locate the SECTIONS / PRODUCT-TEMPLATE.LIQUID file and click on it so the file opens up in the editor.
NOTE: The following code that I am going to modify is specific to the SIMPLE theme and is located in the SECTIONS / PRODUCT-TEMPLATE.LIQUID file. The code you are looking for may be slightly different if you are using a different theme, and may also be located in a different file. Another file to check for the code would be the TEMPLATES / PRODUCT.LIQUID file.

STEP 12
Look for the following code:

<div class="product-single__cart-submit-wrapper{% if section.settings.enable_payment_button %} product-single__shopify-payment-btn{% endif %}{% if section.settings.add_to_cart_width == 'full_width' %} product-form--full{% endif %}">
  <button type="submit" name="add" id="AddToCart"class="btn product-single__cart-submit{% if section.settings.add_to_cart_width == 'full_width' %} btn--full{% endif %}{% if section.settings.enable_payment_button %} shopify-payment-btn btn--secondary{% endif %}">
    <span id="AddToCartText">{{ 'products.product.add_to_cart' | t }}</span>
  </button>
  {% if section.settings.enable_payment_button %}
    {{ form | payment_button }}
  {% endif %}
</div>

STEP 13
Replace the code above with this code:

{% comment %}
  MOD by Jeff - Wrapped the DIV with the IF-ELSE statement to show External BUY NOW button.
              - When link is found, the ADD TO CART and BUY NOW buttons will disappear and this button will show instead.
              - Use Simple Admin app to add custom metafields.
              - NAMESPACE: CustomExternalLink
              - KEY: BuyNowLink = enter http link to external site or the word "none" without quotes to disable
              - KEY: BuyNowText = the text you want customer to see
{% endcomment %}
{% if product.metafields.CustomExternalLink.BuyNowLink == blank or product.metafields.CustomExternalLink.BuyNowLink == 'none' %}
<div class="product-single__cart-submit-wrapper{% if section.settings.enable_payment_button %} product-single__shopify-payment-btn{% endif %}{% if section.settings.add_to_cart_width == 'full_width' %} product-form--full{% endif %}">
  <button type="submit" name="add" id="AddToCart"class="btn product-single__cart-submit{% if section.settings.add_to_cart_width == 'full_width' %} btn--full{% endif %}{% if section.settings.enable_payment_button %} shopify-payment-btn btn--secondary{% endif %}">
    <span id="AddToCartText">{{ 'products.product.add_to_cart' | t }}</span>
  </button>
  {% if section.settings.enable_payment_button %}
    {{ form | payment_button }}
  {% endif %}
</div>
{% else %}
  <a href="{{ product.metafields.CustomExternalLink.BuyNowLink }}"><button class="btn" style="background-color:black; pointer-events: none;"><span>{{ product.metafields.CustomExternalLink.BuyNowText }}</span></button></a>
{% endif %}
{% comment %}
  END MOD by Jeff
{% endcomment %}

STEP 14
Click SAVE.

STEP 15
Go view your product and you should see the new BUY NOW button has been added and the ADD TO CART button has been removed.

 

Enjoy!!!

CallCentric VoIP Phone Provider Review

CallCentric VoIP Phone Provider Review

CLICK HERE for Official Site of CallCentric VoIP Phone Provider Review
Callcentric

If you are looking for a great VoIP company, I want to highly recommend CallCentric VoIP Phone Provider Review in this review.

They have very competitive prices, awesome service, and most importantly you can sign up for a FREE account and make unlimited free calls to other CallCentric customers for life.

VoIP stands for Voice Over Internet Protocol and basically means that CallCentric is phone service provider that uses the internet to make calls instead of using traditional copper phone lines. This results in huge savings on your monthly phone bill, especially when it comes to international long distance.

CLICK HERE for Official Site of CallCentric VoIP Phone Provider Review

For your personal phone, they can help you get up and running quickly with either your own device (BYOD) or can recommend different devices that have been tested with their service. And for business, they can help you with a simple single phone setup or with a complex PBX or Asterisk Server. They have several plans to choose from including pay-as-you-go and unlimited calling plans, and you can also choose your own phone number from a variety countries.

They have now also added new features such as IVR (automated attendants), SMS, multiple extensions, and more!

You have nothing to lose by trying their FREE service (no credit card required), so sign up today and you will not regret it!

From their website:

 Imagine you have a phone number so callers can reach you whether you’re near or far; walking with a mobile phone, at home or the office, using VoIP or a regular phone line. And even more, this number is not in the country where you live.

Sign up now for CallCentric VoIP Phone Provider Review and try it before you buy it for free.

Callcentric
CLICK HERE for Official Site of CallCentric VoIP Phone Provider Review

Thunderbird logging connection issues for POP3 IMAP and SMTP

I came across an issue where Thunderbird appears to be connecting and using PLAIN TEXT authentication, leaving username and password visible, even though I have Authentication set it to SSL/TLS or STARTTLS.

In order to troubleshoot this issue, I found the following article:
https://wiki.mozilla.org/MailNews:Logging

Following the instructions in that article did NOT work!

It says you are supposed to use MOZ_LOG and MOZ_LOG_FILE as of April 2017 however these variables did not work even though it is June 2018. I had to use the old variable names of NSPR_LOG_MODULES and NSPR_LOG_FILE.

The following is the batch file (for Windows 10) that I used and was able to get a log for troubleshooting the authentication and connection to my POP3 and SMTP servers:

set NSPR_LOG_MODULES=negotiateauth:5,POP3:5,SMTP:5,timestamp
set NSPR_LOG_FILE=%USERPROFILE%\Desktop\tb-connect.log
"%ProgramFiles(x86)%\Mozilla Thunderbird\thunderbird.exe"

Using this log I was able to identify that it was indeed using PLAIN TEXT authentication. I am still in the process of trying to determine if this is a Thunderbird bug or a server side bug and will report back with further details when I have them.

I have posted a Bug Report on Thunderbird site in order to track the issue:
https://bugzilla.mozilla.org/show_bug.cgi?id=1467835

 

 

Amazon S3 Bucket Policy for Specific Referer URL only

Here is an example bucket policy below for Amazon S3 that will limit it to a Specific Referer and URL only, so that your content can not be linked to from other websites.

{
 "Version": "2012-10-17",
 "Id": "HttpsRefererPolicyForMySite",
 "Statement": [
 {
 "Sid": "AllowGetRequestsReferredUrlSpecificForMySite",
 "Effect": "Allow",
 "Principal": "*",
 "Action": "s3:GetObject",
 "Resource": "arn:aws:s3:::my-bucket-name/*",
 "Condition": {
 "StringLike": {
 "aws:Referer": [
 "https://mysite.com/this-specific-page-only",
 "https://mysite.com/only-child-pages-of-this-page/*",
 "https://mysite.com/this-specific-page-and-child-pages*"
 ]
 }
 }
 },
 {
 "Sid": "ExplicitDenyIfNotUrlSpecificForMySite",
 "Effect": "Deny",
 "Principal": "*",
 "Action": "s3:GetObject",
 "Resource": "arn:aws:s3:::my-bucket-name/*",
 "Condition": {
 "StringNotLike": {
 "aws:Referer": [
 "https://mysite.com/this-specific-page-only",
 "https://mysite.com/only-child-pages-of-this-page/*",
 "https://mysite.com/this-specific-page-and-all-child-pages*"
 ]
 }
 }
 }
 ]
}

As a couple points of interest, note that for one specific URL to work, you should NOT put /* on the end of it. To specify a specific URL, you use it like this:
https://mysite.com/this-specific-page-only

If you specify a URL with /* on the end, then it will only work for children of that URL, not the specific URL itself. For example, if you use this:
https://mysite.com/only-child-pages-of-this-page/*
then content will NOT play on the specific URL https://mysite.com/only-child-pages-of-this-page but WILL only play on https://mysite.com/only-child-pages-of-this-page/any-other-page

So if you want content to be available on your whole site (including the main domain), you will need to include BOTH the following:
https://mysite.com
https://mysite.com/*

However this sitll will not work for a url with extra GET data, such as:
https://mysite.com?data=123

So to include this you need add the * to the end without the slash, and this will inlcude the specific page as well as all child pages:
https://mysite.com*

 

OSX Bible Verse Screensaver for MacBooks and Macs – KJV and ESV

This is a great OSX Bible Verse Screensaver for your MacBook and Mac. I have modified the ESV Daily Verse Screensaver created by Brett Taylor. His original version is located here http://inner.geek.nz/projects/screensavers/.

The only minor problem with Brett’s original screensaver was that the verse moved around the screen quite fast and non-stop, so it was very hard to actually read and it made you feel kinda sea sick.

My version has been modified to show the verse in one place for 10 seconds and then it will slowly move to a new location. I have also created two versions, one with KJV verse and one with ESV verse so you can choose your preference.

The KJV version gets it’s daily verse from here:
https://www.biblegateway.com/votd/get/?format=atom

The ESV version gets it’s daily verse from here:
http://www.gnpcb.org/esv/share/rss2.0/daily/

HOW TO INSTALL

– Download the .qtz files from here:
KJV version: http://iwebss.com/wp-content/uploads/2016/04/KJV%20Daily%20Verse%20MODIFIED.qtz
ESV version: http://iwebss.com/wp-content/uploads/2016/04/ESV%20Daily%20Verse%20MODIFIED.qtz

– Once downloaded, move the files into the ~/Library/Screen Savers folder in your user folder.

– Then go to your System Preferences > Screen Savers and you should be able to select one of them as your new screen saver.

Let me know what you think by leaving a comment below.

Safari and iTunes will not update from App Store on OS X and are not updating properly

My issue was that the OS X App Store on my MacBook was showing Updates available for both iTunes and Safari. I would click UPDATE and they would download and then say installing. But after supposedly installing, the new version was not available. When I ran Safari or iTunes it was still the old version. And then within a short period of time, they would both appear in the App Store again as an available Update.

So not sure what is causing the issue, but for whatever reason the updates are not being installed properly. So after going thru the update process several times I finally decided to look for another solution.

I found another way to do updates is to use the command line in Terminal.

First you can type this to get a list of available downloads (NOTE: that is a dash then a lower case L which stands for list):

 softwareupdate -v -l

This may take awhile, but will eventually return a list (if any) of available updates. Mine came back with this:

 Finding available software
  Software Update found the following new or updated software:
   * iTunesX-12.3
   iTunes (12.3), 238528K [recommended]

Now to install any specific update from the list you can type:

softwareupdate -v -i iTunesX-12.3

Or to install all the updates you can type:

softwareupdate -v -i -a

With the method above I was succesful at getting Safari to upgrade, but iTunes was still giving me a really hard time, and would not upgrade. You can not just delete iTunes and re-install it either as it is a protected file. But we can delete it from Terminal if we need to and then try re-installing it.

To Delete iTunes, type this in Terminal:

cd /Applications/

Then type the following (and enter your admin password if it asks):

sudo rm -rf iTunes.app/

Once you have deleted it, use the softwareupdate command above and try it again!

Moodle Quick Enrol plugin for enrolling user to multiple courses

The Quick Enrol plugin for Moodle let’s you enrol a user into multiple courses at once, and makes enrolling much easier.

Based on the Quick Enrollment plugin by Adrien Jamot which is no longer supported.

Click here to DOWNLOAD Quick Enrol plugin v1.0

INSTALLATION

v1.0 currently works with Moodle 2.8 and 2.9. It may work with other versions but I not tested it yet.

Download and unzip the quickenrol folder.

Place the entire quickenrol folder in the /moodle/blocks/ folder.

Login as administrator and go to admin notifications. It should ask you to “upgrade database” to install. Note that this plugin does not add to or modify the database at all on installation (it will however add entries to databse when you enrol a student in a course).

Once installed, add the Quick Enrol block to your front page.

Click the “Enrol user in courses”, then choose the user and choose the courses you want them to be enrolled in (hold down CTRL on Windows or CMD on Mac to select multiple courses) and click SUBMIT … it’s that easy

Click here to DOWNLOAD Quick Enrol plugin v1.0