MENU

Welcartの営業日カレンダーをカスタマイズする

実は営業日カレンダーをカスタマイズしたかったのです。
今月と来月のカレンダーをそれぞれdivで囲みたかったからです。

それと、営業日カレンダーに1つ問題があって、
WordPressのデフォルトのカレンダーを応用しているので、
id=”wp-calendar”が重複してしまいます。
デフォルトのカレンダーとWelcart カレンダーとWelcart Blog Calendar(サイトの投稿のカレンダー(商品以外)の3つを表示させると、idが4つ重複してしまいます。

今回は営業日カレンダーをカスタマイズするついでに、
このid重複も直します。

営業日カレンダーのソースを利用して、
Welcart2 カレンダーWidgetを作ります。
ソースはusc-e-shop/widgets/usces_calendar.phpファイルにあります。
下記のソースを自作テーマ内のfunction.phpに記載します。
修正点は下記の通り、関数名などの語尾に2を付け足して置換しています。

Welcart_calendar → Welcart_calendar2
Welcart → Welcart2
usces_the_calendar → usces_the_calendar2
[php]include (USCES_PLUGIN_DIR . ‘/includes/widget_calendar.php’); [/php] ↓
[php]include (get_stylesheet_directory() . ‘/includes/widget_calendar2.php’); [/php]

修正後のfunction.phpに記載したソース

[php]/**
* Welcart_calendar Class
*/

class Welcart_calendar2 extends WP_Widget{
/** constructor */
function Welcart_calendar2() {
parent::WP_Widget(false, $name = ‘Welcart2 ‘.__(‘Calendar’, ‘usces’));
}

/** @see WP_Widget::widget */
function widget($args, $instance) {
extract( $args );
$title = $instance[‘title’] == ” ? ‘Welcart2 ‘.__(‘Business Calendar’, ‘usces’) : $instance[‘title’];
$icon = $instance[‘icon’] == ” ? 1 : (int)$instance[‘icon’];
//if($icon == 1) $before_title = ‘

' . $title . '‘;
$img_path = file_exists(get_stylesheet_directory().’/images/calendar.png’) ? get_stylesheet_directory_uri().’/images/calendar.png’ : USCES_FRONT_PLUGIN_URL . ‘/images/calendar.png’;
if($icon == 1) $before_title .= ‘' . $title . '‘;
?>


修正前のusces_calendar.phpファイルのソース [php]' . $title . '‘;
$img_path = file_exists(get_stylesheet_directory().’/images/calendar.png’) ? get_stylesheet_directory_uri().’/images/calendar.png’ : USCES_FRONT_PLUGIN_URL . ‘/images/calendar.png’;
if($icon == 1) $before_title .= ‘' . $title . '‘;
?>


[/php]

ここで、divで囲むカスタマイズをするので、
usc-e-shop/includes/widget_calendar.phpをコピーして、
自作テーマ内にincludesフォルダを作成し、widget_calendar2.phpとリネームします。

usces_the_calendar2関数で、
自作テーマ内のwidget_calendar2.phpが呼び出されるように、
[php] include (get_stylesheet_directory() . ‘/includes/widget_calendar2.php’); [/php] と記述しているのはそのためです。

widget_calendar2.phpファイルでは、
重複するid=”wp-calendar”を削除し、
今月のカレンダーを

で囲み、
来月のカレンダーを

で囲んでいます。
[php]setToday($todayyy, $todaymm, $todaydd);
$cal1->setCalendarData();
//next
list($nextyy, $nextmm, $nextdd) = getAfterMonth($todayyy, $todaymm, 1, 1);
$cal2 = new calendarData();
$cal2->setToday($nextyy, $nextmm, $nextdd);
$cal2->setCalendarData();
$caption1 = __(‘This month’, ‘usces’) . ‘(‘ . sprintf(__(‘%2$s/%1$s’, ‘usces’),$todayyy,$todaymm) . ‘)’;
$caption2 = __(‘Next month’, ‘usces’) . ‘(‘ . sprintf(__(‘%2$s/%1$s’, ‘usces’),$nextyy,$nextmm) . ‘)’;
?>

getRow(); $i++) : ?>

getDateText($i, $d);
if ($mday != “”) {
$business = $usces->options[‘business_days’][$todayyy][$todaymm][$mday];
//$style = ($business == 1) ? “” : ‘ style=”background-color:#FFECCE; color:#ff0000;”‘;
if($mday == $todaydd){
$tostyle = ‘businesstoday’;
}else{
$tostyle = ”;
}
if($business == 0){
$style = ‘businessday ‘;
}else{
$style = ”;
}
?>

getRow(); $i++) : ?>

getDateText($i, $d);
if ($mday != “”) {
$business = $usces->options[‘business_days’][$nextyy][$nextmm][$mday];
//$style = ($business == 1) ? “” : ‘ style=”background-color:#FFECCE; color:#ff0000;”‘;
$style = ($business == 1) ? “” : ‘ class=”businessday”‘; ?> >




 

      ’ . __(‘Holiday for Shipping Operations’, ‘usces’) . ‘)’.”\n”;
echo apply_filters( ‘usces_filter_widget_calendar’, $afterword);
?>[/php]

これでカスタマイズした営業日カレンダーが出来ました。

目次

営業日カレンダーをカスタマイズした表示例

Welcartの営業日カレンダーをカスタマイズした表示例

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

WordPress Love! 休日はほぼWordPress仲間と一緒に勉強会や写真を撮りに行っています。現在育児中のため、オフが多いです(>△<<<)

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次