Websitepanel error codes in WHMCS

As most of you might know that i own a small web hosting film in Malaysia and doing it full time. Currently, i am setting up windows server 2008 with websitepanel. After the setup, i tried to create the products on my whmcs and do a test run. the server response with an error to whmcs but i have no idea what the heck it was. It takes me a long time until i found the following websitepanel error codes which i bet it will be pretty useful for my future reference. So here's the list of websitepanel error codes that appeared on my whmcs apps.

CURRENT_USER_IS_CRM_USER = -2708;
CURRENT_USER_IS_OCS_USER = -2709;
ERROR_ACCOUNT_WIZARD_FTP_ACCOUNT_EXISTS = -1101;
ERROR_ACCOUNT_WIZARD_USER_EXISTS = -1100;
ERROR_ADD_SERVER_APPLICATION_ERROR = -407;
ERROR_ADD_SERVER_BAD_REQUEST = -401;
ERROR_ADD_SERVER_INTERNAL_SERVER_ERROR = -403;
ERROR_ADD_SERVER_NOT_FOUND = -400;
ERROR_ADD_SERVER_SERVICE_UNAVAILABLE = -404;
ERROR_ADD_SERVER_UNAUTHORIZED = -405;
ERROR_ADD_SERVER_URL_UNAVAILABLE = -409;
ERROR_ADD_SERVER_WRONG_LICENSE = -408;
ERROR_ADD_SERVER_WRONG_PASSWORD = -406;
ERROR_BACKUP_DEST_FOLDER_UNAVAILABLE = -2401;
ERROR_BACKUP_SERVER_FOLDER_UNAVAILABLE = -2402;
ERROR_BACKUP_TEMP_FOLDER_UNAVAILABLE = -2400;
ERROR_DNS_PACKAGE_ITEM_NOT_FOUND = -505;
ERROR_DNS_ZONE_EXISTS = -509;
ERROR_DOMAIN_ALREADY_EXISTS = -502;
ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND = -504;
ERROR_DOMAIN_POINTS_TO_MAIL_DOMAIN = -507;
ERROR_DOMAIN_POINTS_TO_WEB_SITE = -506;
ERROR_DOMAIN_QUOTA_LIMIT = -500;
ERROR_DOMAIN_STARTS_WWW = -503;
ERROR_DOMAINPOINTERS_QUOTA_LIMIT = -510;
ERROR_EXCHANGE_CONTACTS_QUOTA_LIMIT = -2608;
ERROR_EXCHANGE_DELETE_SOME_PROBLEMS = -2606;
ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT = -2609;
ERROR_EXCHANGE_DOMAINS_QUOTA_LIMIT = -2611;
ERROR_EXCHANGE_EMAIL_EXISTS = -2602;
ERROR_EXCHANGE_MAILBOXES_QUOTA_LIMIT = -2607;
ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT = -2610;
ERROR_EXCHANGE_STORAGE_QUOTAS_EXCEED_HOST_VALUES = -2612;
ERROR_FILE_COPY_TO_OWN_SUBFOLDER = -3001;
ERROR_FILE_COPY_TO_SELF = -3000;
ERROR_FILE_CREATE_FILE_WITH_DIR_NAME = -3003;
ERROR_FILE_DEST_FOLDER_NONEXISTENT = -3002;
ERROR_FILE_GENERIC_LOGGED = -3333;
ERROR_FILE_MOVE_PATH_ALREADY_EXISTS = -3004;
ERROR_FP_ACCOUNT_EXISTS = -603;
ERROR_FP_CHANGE_PASSWORD = -604;
ERROR_FTP_PACKAGE_ITEM_EXISTS = -803;
ERROR_FTP_PACKAGE_ITEM_NOT_FOUND = -805;
ERROR_FTP_RESOURCE_QUOTA_LIMIT = -802;
ERROR_FTP_RESOURCE_UNAVAILABLE = -801;
ERROR_FTP_SERVICE_ITEM_EXISTS = -804;
ERROR_FTP_USERNAME_LENGTH = -806;
ERROR_HOSTING_ADDON_USED_IN_PACKAGE = -1502;
ERROR_HOSTING_PLAN_USED_IN_PACKAGE = -1501;
ERROR_INSTANT_ALIAS_IS_NOT_CONFIGURED = -511;
ERROR_INVALID_USER_NAME = -111;
ERROR_IP_USED_BY_PACKAGE_ITEM = -1602;
ERROR_IP_USED_IN_NAME_SERVER = -1601;
ERROR_LICENSE_ALREADY_IN_USE = -2303;
ERROR_LICENSE_LIMITS = -2300;
ERROR_LICENSE_RESELLER_LIMITS = -2304;
ERROR_MAIL_ACCOUNTS_PACKAGE_ITEM_EXISTS = -703;
ERROR_MAIL_ACCOUNTS_PACKAGE_ITEM_NOT_FOUND = -714;
ERROR_MAIL_ACCOUNTS_RESOURCE_QUOTA_LIMIT = -702;
ERROR_MAIL_ACCOUNTS_SERVICE_ITEM_EXISTS = -704;
ERROR_MAIL_DOMAIN_EXISTS = -700;
ERROR_MAIL_DOMAIN_IS_NOT_EMPTY = -720;
ERROR_MAIL_DOMAIN_PACKAGE_ITEM_NOT_FOUND = -718;
ERROR_MAIL_DOMAIN_SERVICE_ITEM_NOT_FOUND = -719;
ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_EXISTS = -706;
ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND = -715;
ERROR_MAIL_FORWARDINGS_RESOURCE_QUOTA_LIMIT = -705;
ERROR_MAIL_FORWARDINGS_SERVICE_ITEM_EXISTS = -707;
ERROR_MAIL_GROUPS_PACKAGE_ITEM_EXISTS = -709;
ERROR_MAIL_GROUPS_PACKAGE_ITEM_NOT_FOUND = -716;
ERROR_MAIL_GROUPS_RECIPIENTS_LIMIT = -721;
ERROR_MAIL_GROUPS_RESOURCE_QUOTA_LIMIT = -708;
ERROR_MAIL_GROUPS_SERVICE_ITEM_EXISTS = -710;
ERROR_MAIL_LICENSE_DOMAIN_QUOTA = -723;
ERROR_MAIL_LICENSE_USERS_QUOTA = -724;
ERROR_MAIL_LISTS_PACKAGE_ITEM_EXISTS = -712;
ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND = -717;
ERROR_MAIL_LISTS_RECIPIENTS_LIMIT = -722;
ERROR_MAIL_LISTS_RESOURCE_QUOTA_LIMIT = -711;
ERROR_MAIL_LISTS_SERVICE_ITEM_EXISTS = -713;
ERROR_MAIL_RESOURCE_UNAVAILABLE = -701;
ERROR_MSSQL_DATABASES_PACKAGE_ITEM_EXISTS = -903;
ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND = -908;
ERROR_MSSQL_DATABASES_RESOURCE_QUOTA_LIMIT = -902;
ERROR_MSSQL_DATABASES_SERVICE_ITEM_EXISTS = -904;
ERROR_MSSQL_RESOURCE_UNAVAILABLE = -901;
ERROR_MSSQL_USERS_PACKAGE_ITEM_EXISTS = -906;
ERROR_MSSQL_USERS_PACKAGE_ITEM_NOT_FOUND = -909;
ERROR_MSSQL_USERS_RESOURCE_QUOTA_LIMIT = -905;
ERROR_MSSQL_USERS_SERVICE_ITEM_EXISTS = -907;
ERROR_MYSQL_DATABASES_PACKAGE_ITEM_EXISTS = -1003;
ERROR_MYSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND = -1008;
ERROR_MYSQL_DATABASES_RESOURCE_QUOTA_LIMIT = -1002;
ERROR_MYSQL_DATABASES_SERVICE_ITEM_EXISTS = -1004;
ERROR_MYSQL_INVALID_DATABASE_NAME = -1011;
ERROR_MYSQL_INVALID_USER_NAME = -1010;
ERROR_MYSQL_RESOURCE_UNAVAILABLE = -1001;
ERROR_MYSQL_USERS_PACKAGE_ITEM_EXISTS = -1006;
ERROR_MYSQL_USERS_PACKAGE_ITEM_NOT_FOUND = -1009;
ERROR_MYSQL_USERS_RESOURCE_QUOTA_LIMIT = -1005;
ERROR_MYSQL_USERS_SERVICE_ITEM_EXISTS = -1007;
ERROR_NOT_ENTERPRISE_SERVER_LICENSE = -2301;
ERROR_NOT_SERVER_LICENSE = -2302;
ERROR_ORG_EMAIL_EXISTS = -2702;
ERROR_ORG_ID_EXISTS = -2701;
ERROR_ORGANIZATION_DELETE_SOME_PROBLEMS = -2706;
ERROR_ORGANIZATION_DOMAIN_IS_IN_USE = -2705;
ERROR_ORGANIZATION_TEMP_DOMAIN_IS_NOT_SPECIFIED = -2704;
ERROR_ORGS_RESOURCE_QUOTA_LIMIT = -2703;
ERROR_OS_DSN_PACKAGE_ITEM_EXISTS = -2103;
ERROR_OS_DSN_PACKAGE_ITEM_NOT_FOUND = -2105;
ERROR_OS_DSN_RESOURCE_QUOTA_LIMIT = -2102;
ERROR_OS_DSN_SERVICE_ITEM_EXISTS = -2104;
ERROR_OS_RESOURCE_UNAVAILABLE = -2101;
ERROR_OS_SCHEDULED_TASK_QUOTA_LIMIT = -2200;
ERROR_PACKAGE_CANCELLED = -304;
ERROR_PACKAGE_HAS_PACKAGES = -301;
ERROR_PACKAGE_NEW = -302;
ERROR_PACKAGE_NOT_FOUND = -300;
ERROR_PACKAGE_QUOTA_EXCEED = -305;
ERROR_PACKAGE_SUSPENDED = -303;
ERROR_RESTORE_BACKUP_SOURCE_NOT_FOUND = -2503;
ERROR_RESTORE_BACKUP_SOURCE_UNAVAILABLE = -2502;
ERROR_RESTORE_INVALID_BACKUP_SET = -2501;
ERROR_RESTRICTED_DOMAIN = -501;
ERROR_SERVER_CONTAINS_PACKAGES = -1702;
ERROR_SERVER_CONTAINS_SERVICES = -1701;
ERROR_SERVER_USED_IN_HOSTING_PLANS = -1703;
ERROR_SERVICE_CONTAINS_SERVICE_ITEMS = -1801;
ERROR_SERVICE_USED_IN_VIRTUAL_SERVER = -1802;
ERROR_SETTINGS_ACCOUNT_LETTER_EMPTY_BODY = -200;
ERROR_SETTINGS_PACKAGE_LETTER_EMPTY_BODY = -201;
ERROR_SETTINGS_PASSWORD_LETTER_EMPTY_BODY = -202;
ERROR_SHAREPOINT_GROUPS_PACKAGE_ITEM_EXISTS = -1406;
ERROR_SHAREPOINT_GROUPS_PACKAGE_ITEM_NOT_FOUND = -1409;
ERROR_SHAREPOINT_GROUPS_RESOURCE_QUOTA_LIMIT = -1405;
ERROR_SHAREPOINT_GROUPS_SERVICE_ITEM_EXISTS = -1407;
ERROR_SHAREPOINT_PACKAGE_ITEM_EXISTS = -2003;
ERROR_SHAREPOINT_PACKAGE_ITEM_NOT_FOUND = -2004;
ERROR_SHAREPOINT_RESOURCE_QUOTA_LIMIT = -1410;
ERROR_SHAREPOINT_RESOURCE_UNAVAILABLE = -2001;
ERROR_SHAREPOINT_USERS_PACKAGE_ITEM_EXISTS = -1403;
ERROR_SHAREPOINT_USERS_PACKAGE_ITEM_NOT_FOUND = -1408;
ERROR_SHAREPOINT_USERS_RESOURCE_QUOTA_LIMIT = -1402;
ERROR_SHAREPOINT_USERS_SERVICE_ITEM_EXISTS = -1404;
ERROR_STATS_PACKAGE_ITEM_EXISTS = -1303;
ERROR_STATS_PACKAGE_ITEM_NOT_FOUND = -1305;
ERROR_STATS_RESOURCE_QUOTA_LIMIT = -1302;
ERROR_STATS_RESOURCE_UNAVAILABLE = -1301;
ERROR_STATS_SERVICE_ITEM_EXISTS = -1304;
ERROR_SUBDOMAIN_QUOTA_LIMIT = -508;
ERROR_USER_ACCOUNT_CANCELLED = -105;
ERROR_USER_ACCOUNT_DEMO = -106;
ERROR_USER_ACCOUNT_PENDING = -103;
ERROR_USER_ACCOUNT_SHOULD_BE_ADMINISTRATOR = -107;
ERROR_USER_ACCOUNT_SHOULD_BE_RESELLER = -108;
ERROR_USER_ACCOUNT_SUSPENDED = -104;
ERROR_USER_ALREADY_EXISTS = -100;
ERROR_USER_HAS_USERS = -102;
ERROR_USER_NOT_FOUND = -101;
ERROR_USER_SERVER_WRONG_AD_SETTINGS = -402;
ERROR_USER_WRONG_PASSWORD = -110;
ERROR_USER_WRONG_USERNAME = -109;
ERROR_USERS_RESOURCE_QUOTA_LIMIT = -2707;
ERROR_VDIR_ALREADY_EXISTS = -605;
ERROR_WEB_INSTALLER_CANT_CONNECT_DATABASE = -1202;
ERROR_WEB_INSTALLER_TARGET_DATABASE_UNSUITABLE = -1204;
ERROR_WEB_INSTALLER_TARGET_WEBSITE_UNSUITABLE = -1203;
ERROR_WEB_INSTALLER_WEBSITE_NOT_EXISTS = -1201;
ERROR_WEB_SHARED_SSL_QUOTA_LIMIT = -609;
ERROR_WEB_SITE_ALREADY_EXISTS = -601;
ERROR_WEB_SITE_IP_ADDRESS_NOT_SPECIFIED = -607;
ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND = -606;
ERROR_WEB_SITE_SERVICE_UNAVAILABLE = -602;
ERROR_WEB_SITE_SHARED_IP_ADDRESS_NOT_SPECIFIED = -608;
ERROR_WEB_SITES_QUOTA_LIMIT = -600;
FAILED_EXECUTE_SERVICE_OPERATION = -999;
SMTP_BAD_COMMAND_SEQUENCE = -1901;
SMTP_CANNOT_VERIFY_USER_WILL_ATTEMPT_DELIVERY = -1902;
SMTP_CLIENT_NOT_PERMITTED = -1903;
SMTP_COMMAND_NOT_IMPLEMENTED = -1904;
SMTP_COMMAND_PARAMETER_NOT_IMPLEMENTED = -1905;
SMTP_COMMAND_UNRECOGNIZED = -1906;
SMTP_EXCEEDED_STORAGE_ALLOCATION = -1907;
SMTP_GENERAL_FAILURE = -1908;
SMTP_INSUFFICIENT_STORAGE = -1909;
SMTP_LOCAL_ERROR_IN_PROCESSING = -1910;
SMTP_MAILBOX_BUSY = -1911;
SMTP_MAILBOX_NAME_NOTALLOWED = -1912;
SMTP_MAILBOX_UNAVAILABLE = -1913;
SMTP_MUST_ISSUE_START_TLS_FIRST = -1914;
SMTP_SERVICE_CLOSING_TRANSMISSION_CHANNEL = -1915;
SMTP_SERVICE_NOT_AVAILABLE = -1916;
SMTP_SYNTAX_ERROR = -1917;
SMTP_TRANSACTION_FAILED = -1918;
SMTP_UNKNOWN_ERROR = -1921;
SMTP_USER_NOT_LOCAL_TRY_ALTERNATE_PATH = -1919;
SMTP_USER_NOT_LOCAL_WILL_FORWARD = -1920;

If anyone of you need web hosting in Malaysia, contact me and i shall provide you with a special discount and help you as much as possible. Hope the article helps 🙂

How to resend username and password to user in WordPress using retrieve_password function

Well, there are no such method where you can resend your existing user a reset password from your side. they must actually click on the "lost password" link and fill up the form in order to retrieve the activation email to reset their password. The method was retrieve_password() which is located in wp-login.php. Hence, you won't be able to use this method and even if you can, you will need to post it over from a form in order to utilized this method. The most easiest way to reuse this method is to recreate it by removing certain condition so that it makes life easier for you.

In my case, my system already has the user email addresses. Hence, all i need to do was to remove the checking for email address and start sending verification from the user whether they wish to reset their password.

/**
 * Handles sending password retrieval email to user.
 *
 * @uses $wpdb WordPress Database object
 *
 * @return bool|WP_Error True: when finish. WP_Error on error
 */
function retrieve_password($user_email) {
	global $wpdb, $current_site;

	$errors = new WP_Error();

	// redefining user_login ensures we return the right case in the email
	$user_login = $user_email;

	do_action('retreive_password', $user_login);  // Misspelled and deprecated
	do_action('retrieve_password', $user_login);



	$key = $wpdb->get_var($wpdb->prepare("SELECT user_activation_key FROM $wpdb->users WHERE user_login = %s", $user_login));
	if ( empty($key) ) {
		// Generate something random for a key...
		$key = wp_generate_password(20, false);
		do_action('retrieve_password_key', $user_login, $key);
		// Now insert the new md5 key into the db
		$wpdb->update($wpdb->users, array('user_activation_key' => $key), array('user_login' => $user_login));
	}
	$message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n";
	$message .= network_site_url() . "\r\n\r\n";
	$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
	$message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "\r\n\r\n";
	$message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
	$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";

	if ( is_multisite() )
		$blogname = $GLOBALS['current_site']->site_name;
	else
		// The blogname option is escaped with esc_html on the way into the database in sanitize_option
		// we want to reverse this for the plain text arena of emails.
		$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

	$title = sprintf( __('[%s] Password Reset'), $blogname );

	$title = apply_filters('retrieve_password_title', $title);
	$message = apply_filters('retrieve_password_message', $message, $key);

	if ( $message && !wp_mail($user_email, $title, $message) )
		wp_die( __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function...') );

	return true;
}

The above method take in an email address and send out the email to the user to request a reset of password. You can change the message to your liking but you will need to know the user password in order to use this method. Hope it helps.