includes/modules/payment/***.php 58行目付近
// disable the module if the order only contains virtual products
if ($this->enabled == true) {
if ($order->content_type != 'physical') {
$this->enabled = false;
}
}
// 下記を追記
if (MODULE_PAYMENT_***_PAYTO == '' && $this->enabled == true) {
$this->enabled = false;
}
if ($this->enabled == true) {
$this->enabled = false;
$shipping_modules = explode(', ', MODULE_PAYMENT_***_PAYTO);
list($session_shipping) = explode('_', $_SESSION['shipping']['id']);
// if (array_search($session_shipping, $shipping_modules)) $this->enabled = true;
if (is_int(array_search($session_shipping, $shipping_modules))) $this->enabled = true;
}
//手数料の表示
if ($this->enabled == true && (int)MODULE_PAYMENT_***_COST > 0 && MODULE_ORDER_TOTAL_***_STATUS != 'true') {
$this->enabled = false;
}
}
function install() {
global $db;
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('配送モジュール:', 'MODULE_PAYMENT_***_PAYTO', '', '***を有効にする配送モジュールを選んで下さい。', '6', '1', 'zen_cfg_select_payment(', now());");
function keys() {
return array('MODULE_PAYMENT_***_PAYTO'追記);
}
//管理画面に配送モジュールを表示させるため下記を追記
function cc_string_format ($type ,$str) {
if (strlen($str) < 1) return false;
$str = @preg_replace('/("|,)/' ,'' ,$str);
$moji_count = 0;
$moji_code = 'utf-8';
switch ($type) {
case 'company':
$moji_count = 30;
break;
case 'name':
$moji_count = 15;
break;
case 'name_kana':
$moji_count = 25;
$str = mb_convert_kana($str, "KVC" ,$moji_code);
break;
case 'postcode':
$moji_count = 7;
$str = mb_convert_kana($str, "a" ,$moji_code);
$str = @preg_replace('/[^0-9]/' ,'' ,$str);
break;
case 'address':
$str = mb_convert_kana($str, "n" ,$moji_code);
$str = str_replace('ー', "-" ,$str);
$moji_count = 100;
break;
case 'telephone':
$str = mb_convert_kana($str, "a" ,$moji_code);
$str = preg_replace('/[^0-9]/' ,'' ,$str);
if (@preg_match('/^0(5|7|9)0/' ,$str)) {
$moji_count = 11;
} else {
$moji_count = 10;
}
break;
case 'email_address':
$moji_count = 100;
break;
case 'product_name':
$moji_count = 150;
break;
default:
break;
}
$str = mb_substr($str ,0 ,$moji_count ,$moji_code);
return $str;
}
}
if (!function_exists('zen_cfg_select_payment')) {
function zen_cfg_select_payment($key_value, $key = '') {
$key_value = explode(", " ,$key_value);
$string = '';
$file_extension = '.php';
$module_directory = DIR_FS_CATALOG_MODULES . 'shipping/';
$directory_array = array();
if ($dir = @dir($module_directory)) {
while ($file = $dir->read()) {
if (!is_dir($module_directory . $file)) {
if (substr($file, strrpos($file, '.')) == $file_extension) {
$directory_array[] = $file;
}
}
}
sort($directory_array);
$dir->close();
}
for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) {
$file = $directory_array[$i];
include_once(DIR_FS_CATALOG_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $file);
include_once($module_directory . $file);
$class = substr($file, 0, strrpos($file, '.'));
if (zen_class_exists($class)) {
$module = new $class;
if ($module->check() > 0) {
if ($module->sort_order > 0) {
if ($installed_modules[$module->sort_order] != '') {
$zc_valid = false;
}
$installed_modules[$module->sort_order] = $file;
} else {
$installed_modules[] = $file;
}
}
}
$name = ((zen_not_null($key)) ? 'configuration[' . $key . '][]' : 'configuration_value');
$string .= '<br><input type="checkbox" name="' . zen_output_string($name) . '"';
if (zen_not_null($module->code)) $string .= ' value="' . zen_output_string($module->code) . '"';
if (is_int(array_search($module->code,$key_value))) $string .= ' CHECKED';
$string .= '>' .zen_output_string($module->title);
}
return $string;
}