That can be accomplished with a teeny observer-class script.
Create the file /includes/classes/observers/force_per_weight_shipping.php:
Code:
<?php
class force_per_weight_shipping extends base {
function __construct () {
$this->attach ($this, array ('NOTIFY_HEADER_START_CHECKOUT_SHIPPING'));
}
function update (&$class, $eventID) {
$_POST['shipping'] = 'perweightunit_perweightunit';
$_POST['action'] = 'process';
}
}
and its associated installer, /includes/auto_loaders/config.force_per_weight_shipping.php:
Code:
<?php
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
/*
** Point 200 is after all other initialization is complete.
*/
$autoLoadConfig[200][] = array ('autoType' => 'class',
'loadFile' => 'observers/force_per_weight_shipping.php');
$autoLoadConfig[200][] = array ('autoType' => 'classInstantiate',
'className' => 'force_per_weight_shipping',
'objectName' => 'force_per_weight_shipping');
That results in the class-based module running each time the checkout_shipping page starts. It "emulates" the customer's selection of the perweightunit shipping method, resulting in the checkout_shipping page being bypassed with the perweightunit method being automatically selected.
To disable this processing, simply rename the auto_loader file to have an extension of .php~