uc_fedex.install in FedEx Shipping 6.2
Same filename and directory in other branches
Install, update, and uninstall functions for the uc_fedex module.
@author Tim Rohaly. <http://drupal.org/user/202830>
File
uc_fedex.installView source
<?php
/**
* @file
* Install, update, and uninstall functions for the uc_fedex module.
*
* @author Tim Rohaly. <http://drupal.org/user/202830>
*/
/**
* Implements hook_requirements().
*/
function uc_fedex_requirements($phase) {
$t = get_t();
// Check that the PHP SOAP extension is loaded
$has_soap = extension_loaded('soap');
$requirements['uc_fedex_soap'] = array(
'title' => $t('SOAP'),
'value' => $has_soap ? $t('Installed') : $t('Not Installed'),
);
if (!$has_soap) {
$requirements['uc_fedex_soap']['severity'] = REQUIREMENT_ERROR;
$requirements['uc_fedex_soap']['description'] = $t("The FedEx API requires the PHP <a href='!soap_url'>SOAP</a> library.", array(
'!soap_url' => 'http://www.php.net/soap',
));
}
return $requirements;
}
/**
* Implements hook_schema().
*/
function uc_fedex_schema() {
$schema = array();
$schema['uc_fedex_products'] = array(
'description' => 'Stores product information for FedEx shipping quotes.',
'fields' => array(
'vid' => array(
'description' => 'The {uc_products}.vid.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'nid' => array(
'description' => 'The {uc_products}.nid.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'pkg_type' => array(
'description' => 'The type of package in which the product will be shipped.',
'type' => 'varchar',
'length' => 2,
'not null' => TRUE,
'default' => '',
),
),
'primary key' => array(
'vid',
),
);
return $schema;
}
/**
* Implements hook_install().
*/
function uc_fedex_install() {
drupal_install_schema('uc_fedex');
}
/**
* Implements hook_uninstall().
*
* Removes all tables and variables inserted into the
* database by this module.
*/
function uc_fedex_uninstall() {
drupal_uninstall_schema('uc_fedex');
// Remove all module variables from the database
variable_del('uc_fedex_user_credential_key');
variable_del('uc_fedex_user_credential_password');
variable_del('uc_fedex_account_number');
variable_del('uc_fedex_freight_account_number');
variable_del('uc_fedex_meter_number');
variable_del('uc_fedex_server_role');
variable_del('uc_fedex_ground_services');
variable_del('uc_fedex_express_services');
variable_del('uc_fedex_freight_services');
variable_del('uc_fedex_quote_type');
variable_del('uc_fedex_dropoff_type');
variable_del('uc_fedex_package_type');
variable_del('uc_fedex_all_in_one');
variable_del('uc_fedex_insurance');
variable_del('uc_fedex_rate_markup');
variable_del('uc_fedex_rate_markup_type');
variable_del('uc_fedex_weight_markup');
variable_del('uc_fedex_weight_markup_type');
variable_del('uc_fedex_address_validation');
variable_del('uc_fedex_residential_quotes');
variable_del('uc_fedex_checkout_validation');
variable_del('uc_fedex_label_image_format');
variable_del('uc_fedex_label_stock');
variable_del('uc_fedex_label_orientation');
variable_del('uc_fedex_label_lifetime');
}
/**
* Implements hook_update().
*/
function uc_fedex_update_6200() {
$ret = array();
$schema = drupal_get_schema('uc_fedex_products', TRUE);
db_create_table($ret, 'uc_fedex_products', $schema);
return $ret;
}
/**
* Implements hook_update().
*
* Refactor uc_fedex shipping method into three separate methods:
* Ground, Express, and Freight. Ensure that service selections
* are transferred from the old method to the new methods. If FedEx
* was enabled at admin/store/settings/quotes/methods, figure out
* which of the new methods should be enabled based on the service
* selections.
*/
function uc_fedex_update_6201() {
$ret = array();
$services = variable_get('uc_fedex_services', NULL);
if (isset($services)) {
$ground_services = array();
$freight_services = array();
// Remove ground services from list of services
if (isset($services['FEDEX_GROUND'])) {
$ground_services['FEDEX_GROUND'] = $services['FEDEX_GROUND'];
unset($services['FEDEX_GROUND']);
}
if (isset($services['GROUND_HOME_DELIVERY'])) {
$ground_services['GROUND_HOME_DELIVERY'] = $services['GROUND_HOME_DELIVERY'];
unset($services['GROUND_HOME_DELIVERY']);
}
// Remove freight services from list of services
if (isset($services['FEDEX_1_DAY_FREIGHT'])) {
$freight_services['FEDEX_1_DAY_FREIGHT'] = $services['FEDEX_1_DAY_FREIGHT'];
unset($services['FEDEX_1_DAY_FREIGHT']);
}
if (isset($services['FEDEX_2_DAY_FREIGHT'])) {
$freight_services['FEDEX_2_DAY_FREIGHT'] = $services['FEDEX_2_DAY_FREIGHT'];
unset($services['FEDEX_2_DAY_FREIGHT']);
}
if (isset($services['FEDEX_3_DAY_FREIGHT'])) {
$freight_services['FEDEX_3_DAY_FREIGHT'] = $services['FEDEX_3_DAY_FREIGHT'];
unset($services['FEDEX_3_DAY_FREIGHT']);
}
if (isset($services['INTERNATIONAL_ECONOMY_FREIGHT'])) {
$freight_services['INTERNATIONAL_ECONOMY_FREIGHT'] = $services['INTERNATIONAL_ECONOMY_FREIGHT'];
unset($services['INTERNATIONAL_ECONOMY_FREIGHT']);
}
if (isset($services['INTERNATIONAL_PRIORITY_FREIGHT'])) {
$freight_services['INTERNATIONAL_PRIORITY_FREIGHT'] = $services['INTERNATIONAL_PRIORITY_FREIGHT'];
unset($services['INTERNATIONAL_PRIORITY_FREIGHT']);
}
if (isset($services['INTERNATIONAL_DISTRIBUTION_FREIGHT'])) {
$freight_services['INTERNATIONAL_DISTRIBUTION_FREIGHT'] = $services['INTERNATIONAL_DISTRIBUTION_FREIGHT'];
unset($services['INTERNATIONAL_DISTRIBUTUION_FREIGHT']);
}
// Create new variables with services separated out
variable_set('uc_fedex_ground_services', $ground_services);
variable_set('uc_fedex_express_services', $services);
variable_set('uc_fedex_freight_services', $freight_services);
variable_del('uc_fedex_services', $services);
// If FedEx quotes are enabled, figure out which services are
// being used and make sure the correct new methods are enabled
$enabled = variable_get('uc_quote_enabled', array());
if ($enabled['fedex']) {
if (count($ground_services)) {
$enabled['fedex_ground'] = TRUE;
}
if (count($services) == 0) {
$enabled['fedex'] = FALSE;
}
if (count($freight_services)) {
$enabled['fedex_freight'] = TRUE;
}
variable_set('uc_quote_enabled', $enabled);
}
}
return $ret;
}
Functions
Name![]() |
Description |
---|---|
uc_fedex_install | Implements hook_install(). |
uc_fedex_requirements | Implements hook_requirements(). |
uc_fedex_schema | Implements hook_schema(). |
uc_fedex_uninstall | Implements hook_uninstall(). |
uc_fedex_update_6200 | Implements hook_update(). |
uc_fedex_update_6201 | Implements hook_update(). |