When using WHMCS i have found that configuring the software to handle free domains can be confusing especially when you do not know what all of the setting do. In this article i will go through the various settings that can affect free domains and then i will give the ideal setup.
All the following answers are from WHMCS staff members through the support system.
CRON Jobs
There are 2 CRON that need to be considered.
Auto Renew on Payment
Automatically renew domains which are set to a supported registrar when they are paid for.
This allows automation of the domains (does not mean that the hosting service will go off, but the client not paying and the domain could get lost). It means the ouness is on the customer and me checking every other date to see if i need to renew.
Auto Renew Requires Product
http://docs.whmcs.com/Domains_Tab#Auto_Renew_Requires_Product
Only auto renew free domains that have a corresponding active product/service for the same domain
These answers are confirmed by a WHMCS staff member
Domain Sync Enabled
Tick this box to enable automated domain syncing with supported registrars via cron
When this option is enabled WHMCS will poll your registrar for expiration dates for all of your domains and then update the records in WHMCS to match. This prevents errors happening from human error
Sync Next Due Date
This option allows you to set the billing due date for the domain to match the expiration date of the domain. You also have the ability to set the billing due date XX number of days before the domain expiry. This can possibly be useful for customer so they dont forget to renew their domain but can cause other issues.
Scenario
I currently have annual hosting services with free domains packages on my whmcs. Some of these accounts have domains that expire years in the future so when the hosting service is renewed they do no need their free domains renewed at a cost to me that i do not need to pay for.
Is it possible to set a hosting package with a free domain that will only renew that domain at hosting renewal if that the doamin expiry is less than 1 year (or xxx years).
Question
This is for a domain transferring in with extra years (lets say 5) to a hosting service with a free domain (this will be the one transfered in)
1. No matter what the settings are, because the domain is set to free and matches the hosting services it will get renewed every year adding additional years on.
2. The CRON job changes the expiration date and next due date for the domain in WHMCS to match the domain's real expiration date. This breaks the shared invoice with the hosting service, but the domain is not renewed until it's expiration date thus i do not end up paying for the extra years, this is what i want. so to clarify with this option, if a domain is transfered in with extra years those years are used up before the domain is renewed at the register irrespective of whether it is free or not.
Answer
Both of the scenarios that you've provided can be correct.
WHMCS will attempt to automatically renew the domain name when the Expiry Date that it has stored comes up.
If this date does not match the date with the registrar then this could cause the domains to be renewed early or late.
If you haven't done so already I would recommend going to Setup > General Settings > Domains and enabling Domain Sync, after doing so you'll want to set up a cron job to run the domainsync.php script. This will allow WHMCS to contact your registrar, find out the expiry dates for your domains, and then update this information in WHMCS.
You can read more about this at http://docs.whmcs.com/Domains_Tab#Domain_Sync_Enabled
When a hosting service is renewed it seems to renew the domain as well because it is attached to the hosting service.
That's kind of what happens. It's a bit more complicated than that though.
When you use the Free Domain option with a Product/Service it will offer the client a free domain name which will be renewed as long as the associated service is active. This free domain will always have a billing cycle of 1 year regardless of what the customer selects.
Example: http://screencast.com/t/iaJEmwUNq
So, there are two things to address to clarify how this all works.
It's not free because it's attached to the service. It's free because it was purchased along with the service. It's still an individual entity that has its own due date and its own recurring value. If, for some reason, the domain has been registered for longer than 1 year or the expiration date has changed with the registrar then WHMCS has no way of knowing that unless you have domain sync enabled.
Domains and hosting are seperate items and it is just by their invoice date that they appear on the same invoice
So if a customer transfers in with let say 10 years on their domain i obviously dont want to keep renewing that domain and wasting money or a domain might of got extended automatically along the transfer line, ie enom automatically renews a domain for a year if there is not many days left on the domain when transferring.
So (still with free domain)
when the domain is transferred in, the hosting services configured etc.. I can then manually change the due date on the domain next due date for some time in the future and the domain will stay free because it has 0.00 set.
The domain would then not get renewed until the time i have set in the future, thus saving me renewal fees on a domain with extra years.
the domain and hosting services only appear on the same invoice because of the invoicing date but they are both quite seperate.
The domain would then not get renewed until the time i have set in the future, thus saving me renewal fees on a domain with extra years.
Yeah, that's correct. WHMCS won't attempt to renew the domain until the Next Due Date for that domain name.
So, if you had Domain Sync enabled then WHMCS would automatically check with your registrar to see what the expiration date was; it would then update the Expiration Date and Next Due Date in WHMCS to match that date.
why would the CRON job alter the 'invoice due date'. (ps i have date syncing enabled).
The domainsync.php file does not alter the "Invoice Due Date". If you have the "Sync Next Due Date" option enabled at Setup > General Settings > Domain then it will alter the domain's Next Due Date in addition to the Expiration Date.
If what you said is true above, then all my domains would not get renewed or purchased until their expiry date meaning that i would never have to pay for extra years when i did not need to which is the opposite of what i was told earlier.
WHMCS will only attempt to generate a renewal invoice around the time of the Next Due Date for the domain name. If you have 'Domain Sync' enabled, with 'Sync Next Due Date' also enabled, then WHMCS will automatically update the Expiration Date and Next Due Date of the domain name for you.
Scenario
Question
can you answer/confirm the 2 following questions:
The reason i ask these questions is i dont want a domain name to get renewed automatically if a client does not renew their hosting with a free domain name.
Answer
Thanks for contacting technical support. To address your points:
You can enable the Setup > General Settings > Domains tab > Auto Renew Requires Product option, which means that the domain will only be renewed if the service is still active at the time the domain comes up for renewal.
NB if using the Advanced Date, the logic will be run for that date not the expiry date of the domain. In this situation the domain would still be renewed for free separate from the product of the same name. It is for this reason we recommend that when offering domains which renew for free to disable the Sync Due Date option: http://docs.whmcs.com/Common_Promotions#Notes
Follow-up Question
As a follow up to the option "Only auto renew free domains that have a corresponding active product/service for the same domain"
How would this apply to my situation (option 2) if i set the domain to be renewed 14 days before. From what i can see the domain will still get renewed automatically because there is an active service and then, if in 14 days my client decides not to renew his hosting i will of renewed his domain when not required costing me money.
Follow-up Answer
In that situation the domain would still be renewed for free separate from the product of the same name. It is for this reason we recommend that when offering domains which renew for free to disable the Sync Due Date option: http://docs.whmcs.com/Common_Promotions#Notes
Conclusion
If you set premature renewals of domains, WHMCS will check on that date which is 14 days before the domain's expiration date wheather the domain has an active service which has a matching domain name. If there is, the domain will be renewed. This does allow the oppurtunity for the customer to get a free renewal if they dont renew within the next 14 days.
So this is a bit of a pointless setting. There should be an option for this to only apply to non-free domains.
What I have configured
My setup above has the following results
Update
You can use the Windows Accessibility route. Search www.howtogeek.com for instructions
Conclusion
So it would appear the key that is administered is the same across the board for the free upgrade (possible Win10 Pro and Win10 Home are different).
The license for the Free Upgrade is directly linked to the hardware, thus enabling you to activate throughout the lifespan of the PC ( assuming no major hardware changes take place) and it has been activated at least once throught the Free Upgrade process.
Conclusion
The free license key will work for a flat install as long as the unit has been upgraded to Win10 at some point in its life, looking like the hardware Id is linked to the activation. This also assumes you are using the correcct key for Win10 Pro/Home.
1511 version
Most people who have android phones have windows PCs, some of those people have microsoft office and use it for their emails and calendars. Android does not have native support for syncing the calendars and emails on the phone.
When you have a samsung phone with a stock ROM it has support for syncing via the KIES software, but as soon as you install a non-stock ROM the kies software service on the phone is no longer present. This might be true for other manufacturers and their stock ROM solutions for outlook.
I have found it frustrating syncing my Outlook contacts and calendar between outlook and my android phone. Outlook will always be my primary calendar and contacts.
I found this topic particularly difficult, i know what i wanted to do but i had loads of questions such as if i deleted the item on outlook how would it get deleted on the android phone. So i decided to work through the pain and write some instructions on how i synced my details and the different types of sync there is.
You can choose either to sync to your android phone (only/local store) or to your google account. It is important that you know about these 2 places to store contacts and calendar details. If you use the local store option gogole cannot see your contacts adn calendar events.
General Notes
Software
There are 2 programs that are capable of performing sysncing with outlook and various endpointd (to be investgated) for both contacts and calendar
FJ Software Development - Home of MtPhoneExplorer
This is my preffered option and works with most android phones.
MyPhoneExplorer has the ability to sync your:
MyPhoneExplorer also has the following features:
You might find the follow useful so you know what will happen with default settings and to make sure you have them set as you require before you run the MyPhoneExplorer sync for the first time. I assume you have installed the app on the android phone and the windows app as per instructions. I also used a USB for these tests.
Created a Contact in Google Contacts (webpage)
Created Calendar item in Google Calendar (webpage)
Created Contact in Outlook
Created Calendar item in Outlook
I am going to use my Google Account rather than the Phone's Local Store. You can always change this later but would require a bit of effort. My Outlook will always be my primary store for contacts and calendar events.
Delete Local Contacts and move them all to your Google Account
You can delete all contacts on the phone in one go by using the windows application. This example deletes the phones local store, and then uploads all your outlook contacts to your Google Account. You can also do the same instructions for your Calendar. As ever just make sure you have backups of you Outlook PST and your Android Phone's Contacts and Calendar just incase you have some issues.
NB: When you run the script again it might have a few records that need updating/syncing this might be because of slight inconsistencies with how the records were stored.
Syncing Profile Photos (Google -> Phone -> MyPhoneExplorer -> Outlook)
this feature is not perfect, but not absolutely required. The mechanisms in MyPhoneExplorer do exist but not always aas you expect. If you had no contacts in outlook and everyone of your google account contacts had a profile image they would all transfer to outlook withou issue. The problems come in when you have contacts in different locations.
Basically if you sync both directions you will probably not get the images updated as myphonexplorer does not use image change as a trigger point. You need to force Phone to outlook.
MyPhoneExplorer can only download the phone logs, you cannot push the losg back to the phone
There should be an app that syncs the profile images. This should allow only those contacts at Google's Servers that have a profile image to updated the local cached version of these Google Contacts on your phone.
GO Contact Sync Mod - at SourceForge.net
This is a very simple piece of software that allows you to sync your outlook Contacts and Calendar directely with your Google Account and then by proxy, with your Android Mobile Phone because that syncs with your account. You can sync your contacts and calendar even if you do not have an android mobile phone. This software can be set to run automatically and sync automatically.
Easy to use and Easy to run. If you do not want all of the extra features of MyPhoneExplorer and do not want to use the Phones Local Store this would be for you.
Notes
A common problem with Google Contacts is tha the profile images stored on Google's Servers do not always repliacte down to your android phone. These are a couple of methods to fix (sort of) the problem.
Method 1
Method 2
This option seems to be really popular on the internet and does seem to be successful boot has some caveats. This method will delete your recent call history, call logs and contact Favourites, possible more.... This method is taken from this article, Android: How to Delete All Contacts
Some images were updated, some might still be downloading when i checked. Favorites were missing and recently called people. It did not cause all contacts to be updated, some had to be merged/updated (my choice) when i re-synced with MyPhoneExplorer. One of the accounts that I merge updated its contact photo. You should make note that it was updated because I merged the account changes and did not use the outlook contact only, I could of also just used the phone account which probably would have a similiar effect because my accounts were mostly in-sync. If there were already images on the outlook account I assume it would not get replaced. This method did delete call logs from the phone, recent calls, missed calls etc..
This method does work a little but does not seem able to 100% download all of the images, this could possibly i have not left it long enough or there is a sync limit which has been reached so you have to wait for a reset.
This is a video of a smiliar method but it uses 'contacts' not 'contacts storage'. I tried this but could not get it to work. Android Contact List Images Photos Missing - YouTube
Below i am going to list a few pieces of software i have found for syncing outlook with your android phone. Some are free and some are paid for.
IMAP
If you are using IMAP then there is a chance you have all your contacts and emails stored with your email provider, even your calendar if Google.
POP3
This is not strictly achievable when using POP3 but i have a really good work around.
what this does is allow your main PC to download the emails as it does normally but leaves 2 weeks worth of emails in the mailbox so your phone has upto 2 weeks to download these emails. But because the phone is setup as IMAP you get immediate emails via PUSH notifications. I think K9 caches the emails it downloads so it possibly is keeping emails for longer than 2 weeks, if it doesnt having 2 weeks worth of emails on your phone is more than enough.
If you find that your mailbox is getting too full you can either increase the size of the mailbox or reduce the number of days that outlook keeps emails in the mailbox.
The PC with outlook on will always be the master.
MS-Exchange
I have not tried this but i am sure there is full Microsoft Echange support available if you use one of these corporate systems in which case you email, contacts and calendar will be synced.
This has got to be one of the most annoying issues with Windows 8, and also one of the most unfixed issues. Below i will show you what i did to fix my issues and then expand on what i think the causes are etc..
There is UEFI (EFI) and non-UEFI versions of boot loader. I think this is the difference between secure and non-secure booting.
Listed in order.
Stage 1
When you get this issue it always loads the choice screen where you can try to load windows again or try to repair your Windows installation. This menu never gives you any indication of what the error is, it just keeps looping.
In this Repair menu i tried all of the following options, non of which worked to reapir the boot loop.
Stage 2
I now followed the instructions from this webpage with a few modifications because i relised that i was using a UEFI and that this might cause other issues. However the things i tried above are valid for Windows 8.
http://woshub.com/how-to-repair-uefi-bootloader-in-windows-8/
The matter is that the BCD loader configuration in Windows 8 installed in UEFI mode is stored on a separate hidden EFI volume (100 MB in size on FAT32 file system). Bcdedit can not see it and, therefore, manage the loader configuration on it.
NB: my bcdedit could see the BCD i think it was because the appropriate partition had a drive letter
My Modifications
The commands i actually ran from the Windows 8 Boot Disk (DVD):
from here on i get the following error screen which actually shows you an error
The operating system couldn’t be loaded because a critical system driver is missing or contains errors. File: \windows\system32\drivers\mfehidk.sys Error code: 0x000000d
The file mentioned above, Mfehidk.sys is a system process that runs in the computer background and maintains the host intrusion detection system for McAfee Antivirus. Mfehidk.sys will not be the cause of everyones boot loop or the faulting file shown.
http://h20565.www2.hp.com/hpsc/doc/public/display?sp4ts.oid=4132189&docId=mmr_kc-0110048&docLocale=en_US - says what Mfehidk.sys is for.
Stage 3
The boot loop has now gone but I could no longer use the 'Auto Repair Menu' on the hard disk so i had to revert to using a Windows 8 Boot Disk with Dart Utilities.
When the disk had loaded i navigated to the Advanced Tools via the Troubleshooting menu and ran the following (you will be prompted to login)
C:\windows\System32\Logfiles\Srt\SrtTrail.txtI rebooted the PC and Windows still did not load and went to the same blue screen with the error message on it.
Logfile
So i decided i would go and have a look at this file and what the logfiles say. You can read the SRT log to see what issues are hyappening.
C:\windows\System32\Logfiles\Srt\SrtTrail.txt
In my log file i was drawn to the lines
Root cause found: --------------------------- Boot critical file c:\windows\system32\drivers\mfehidk.sys is corrupt. Repair action: File repair Result: Failed. Error code = 0x2 Time taken = 2781 ms Repair action: System files integrity check and repair Result: Failed. Error code = 0x490 Time taken = 870141 ms
Stage 4
Just as a followup, when windows loaded it prompted me with a system restore error. This could of been caused by some of the work i did or that my client had been messing before the failure, even though he told me he had not. I just cancelled the notification and all was well.
Causes of the boot loop
The cause for this boot loop was undoubtably the 0 Byte files that windows was trying to load as drivers, and inparticular because it was a low level antivirus file, this was why the loop happened so quickly.
even though i tried loading windows without low level malwaredrivers i think this file was either not a low level antivirus file or when it is parsed because it is 0 Bytes long caused a hard crash of the kerenl which always flaggs the last boot as dirty, hence the loop.
The files could of been made 0 Bytes by anti-virus cleaning the file because it thinks it is a virus or perhaps when Mcaffe updated itself it did not correctely delete these files.
above was a worked example of what i did to fix the boot loop but here is the order of things you should do. Try rebooting your PC after each section to see if that fixed your computer.
C:\windows\System32\Logfiles\Srt\SrtTrail.txt
C:\windows\System32\drivers\
You should have a working PC by now, if not try going through them again to see if you have missed anything. After this the next step is to back all your stuff up and perfomr a refresh, reset or fresh install of windows.
You have trired adding your SVN repository into your Redmine project and you get the follwing error when you try browsing the repository.
404 The entry or revision was not found in the repository
Althought my instructions are geared towards my own setup of Redmine, Subversion and Netbeans all running on windows these solutions might work for other setups including remote Subversion servers.
If you are getting an "404 - the entry or revision was not found in the repository" error, it may be due to an invalid certificate. When we use svn (via https) in small businesses, we tend to use self-signed certificates but subversion client doesn't trust those by default. So you have to add exceptions to the ones you trust.
If you run redmine from the command line (not as administrator), this runs Redmine as the currently logged in user and because of that, uses that user's Subversion SSL store and correctely handles the 'non-verified' SSL certificate if that certificate is in the current user's Subversion SSL Store
rails server -e production
You should find that you can now browse your reopsitory through redmine. If this works it also proves that the permissions are wrong in the redmine windows service. Although it does not directly fix the issue when running Redmine as a windows service it is a quick work around and a useful tool for testing.
This solution worked for me.
My instructions when setting up 'Redmine as a Windows Service' configure the service to use the windows system account. This causes problems with Untrusted SSL Certificates (non-verified) because the windows system account does not have a Subversion SSL store to hold an exception and when the untrusted SSL is used this causes the Subversion binary to fail.
The solution is very easy. You need to edit the Windows Redmine Service and change the 'Log On' User. I would not use an admin account for security reasons.
If you Redmine Windows Service is running, you need to stop and start it for these changes to be applied. I am also not sure if this will cause any issues with not running aas the system account.
Redmine utilises the Subversion Client Binary. This binary will not work correctly if called by Redmine when it comes across a 'non-verified' SSL certificate and no exceptions have been made for this SSL certificate.. The connection will fail and you will get the error above. So to fix this we need to add the 'non-verified' SSL to our Subversion SSL store.
svn list --xml "https://svn.quantumwarp.com:18080/svn/MyITCRM"@HEADThis will access your Subversion repository in an interactive mode and prompt you with questions if required
Or
Another solution is just to use a Trusted SSL certificate.
These solutions might not work and could be out of date. They are here so you know about them if the solutions above do not work.
General
SSL Stores
Netbeans, Subversion and SubversionEdge all have their own SSL stores as shown below.
If you open a command prompt elevated to an administrator and run the Subversion binary, when you accept the certificate permanently the certificates will be stored in that accounts Subversion SSL store and not your currently logged in user's Subversion SSL store.
In this document I will be making a copy of the latest MyITCRM from github, then make my own project in redmine which will be linked to a Subversion repository and controlled via a NetBeans project which is my prefered IDE.
It is worth reading this article - http://php.dzone.com/articles/creating-a-netbeans-php-projec
This is only required if you are creating your own repository or one has not already been setup.
These access rules are not really GUI Driven but can be accessed through the console.
https://svn.help.collab.net/entries/24785311-Define-repository-access-rules
[/] * = rw
[/] shoulders = rw
Once you have created your repository it is important to create a hook that tells the redmine project tracker that changes have been mnade to this repository (you can set a global lookup command that does all repositories instead)
See my other notes
Accessing the repository
From the command line
svn checkout https://svn.quantumwarp.com:18080/svn/MyITCRM/trunk MyITCRM --username shoulders
This is the hook file
@ECHO OFF #curl http://<redmine url>/sys/fetch_changesets?id=<project identifier>&key=<your service key> #curl "http://<redmine url>/sys/fetch_changesets?key=<your service key>" curl "http://svn.quantumwarp.com:81/redmine/sys/fetch_changesets?id=myitcrm&key=xxxxxxxxxxxxxxxxxxxx" #curl "http://svn.quantumwarp.com:81/redmine/sys/fetch_changesets?key=xxxxxxxxxxxxxxxxxxxx"
Notice the project identifier is all lower case, this is the identifier is the redmine one.
The access key is taken from redmine (administration/settings/repositories/’API Key’), generate a key if none is present and then populate the selected line above with the repository id (if required) and the API key.
The above code should be added to a file called post-commit.bat and placed in:
D:\Documents\Developer\SubversionEdge\data\repositories\MyITCRM\hooks
Create a new project by going in to redmine and use the following settings
Check the repository is working
Now that the blank repository has been setup you need to load the files into it. This has to be done by a SVN client and in respect of this tutorial can be done in 1 of 2 ways:
Again this assumes that you are creating your own repository and not just connecting to one that is already live
These instructions do not involve a subversion server yet
If you have already loaded you SVN project up via tortoiseSVN or you are using a Subversion server then you should use ‘PHP Application with Existing Sources’ but select a Subversion Server as the source
---------EOF-----------
https://netbeans.org/kb/docs/php/project-setup.html - setting up a php project
https://netbeans.org/kb/docs/php/quickstart.html - php quick start
https://netbeans.org/kb/trails/php.html - PHP and HTML5 learning Trail
http://wiki.netbeans.org/ConfiguringNetBeansProjectForWordPress - similiar setup to this one
In NetBeans pressing F1 will bring up the context sensitive help page.
Notes
The subversion information is saved in the files, so while testing these will need deleting
Ie svn when should I use trunk/branches etc… what is the difference. Should I just use the trunk if it is me or should I create my own branch.
This article is 2 fold. It firstly tells you how to export your bookmarks from the AOSP browser in Android and then how to import them into Firefox. The other browsers such as Google Chome or Mozilla Firefox have a sync feature built into them and there are also apps to extract the links from these. But this article is for extracting the Bookmarks from the AOSP browser only. Once you have done this you should consider using the inbuilt sync features of the Chrome or Firefox browser.
Below are different methods based on the 2 Apps that I have used on how to export from android AOSP browser to importing them into firefox.
This is my prefered option because of the nicely formed html file that can be imported straight into FireFox.
Download here
now on its description it says
From reading this means it willl not work on later version of android where the browser is chrome, not AOSP. it's second waring is about not using it if the syncronization was activated. well i had just installed the chrome browser and activated the sync, but i had no links in it and the backup happened fine. i would recommend uninstalling this after runnig the backup. It probably messes with the sync if you try and add things or alter them possibly.
Instructions
Now you have the file on your PC you have 2 options to import the links to Firefox because of the useful format it has been exported in.
Option 1
This is my prefered option because of the nicely formed html file that can be imported straight into FireFox.
Option 2
Option 3
Optional
To keep things clean you can delete the Bookmarks on your phone using Super Backup and use 'Remove Bookmarks' option
Download here
This has an excellent feature to delete all bookmarks on the phone. This appears to only wipe the AOSP bookmarks, but possibly wipes Chrome, Firefox etc... but this needs checking.
Instructions
Optional
To keep things clean you can delete the Bookmarks on your phone using Super Backup and use 'Remove Bookmarks' option
These might get moved to their own article
There might be occasions where need to know the colour of a text used in a libre office document. I will show you here the different methods that i know of.
These will probably work on open office documents aswell.
The text is now pasted in to the wysiwyg and the hex code is contain in a <span> tag around the text for you to use.
Most people dont know that libre office files are zip compressed and that the actual language is an xml style similiar to html if not a derivative.
For example, from a little test file that I made:
<style:style style:name="T4" style:family="text"><style:text-properties fo:color="#008000"/></style:style> <text:span text:style-name="T4">green</text:span>
You can then use Tools > Options > LibreOffice > Colours to add any desired colour to your GUI.
I am running Cyanogenmod 10.1.3 on my Samsung Galaxy SII (GT-I9100), and starting yesterday my keyboard continuously crashes with the following message:
Unfortunately, Android keyboard (AOSP) has stopped.
This message pops up very 10 seconds or so even when I am not trying to type. I thought it might have something to do with my recent install of the DU Speed Booster app. But after uninstalling it I still get the same problem.
This is very serious, as my phone is rendered almost completely unusable since I can't enter any text, and message keeps popping up preventing me from even doing things that only require touch.
Solution
Go to System Settings > Apps > click Android keyboard (AOSP). Clear Data. Clear Cache.
Links
These are my notes on those plastic opening tools for those fiddly phones and electronic devices that dont want to be opened.
A Spudger is also known as:
All terms can prefixed with either: Metal / Plastic / Nylon
There are loads of different types of spudger, both plastic and metal. The most famous is the DottorPod iSesamo which is a metal blade with a plastic handle specifically designed for opening iPhones. The iSesamo requires care when being used because it is sharp metal
I have discovered that the plectrums are sold as Spludgers or pry tools as they are ideal for the job and because they are plastic they are not likely to damage your electronic goods.
Spudger - Wikipedia, the free encyclopedia
My advice, now that you know the different names of a Spludger, search on eBay and find the ones that suit your need. I found the following a good list: