1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
<?php
namespace SIW\WooCommerce\Frontend;
use SIW\Util;
use SIW\i18n;
use SIW\Formatting;
use SIW\Properties;
class Archive_Header {
public static function init() {
$self = new self();
add_action( 'after_page_header', [ $self, 'add_archive_description'] );
}
public function add_archive_description() {
if ( ! $this->show_archive_header() ) {
return;
}
$text = Formatting::array_to_text(
array_filter(
[
$this->get_intro_text(),
$this->get_sale_text(),
$this->get_teaser_text(),
]
),
BR2
);
?>
<div class="container">
<div class="row siw-archive-intro">
<div class="md-12">
<?php echo wp_kses_post( $text ); ?>
</div>
</div>
</div>
<?php
}
protected function show_archive_header() {
return is_shop() || is_product_category() || is_product_taxonomy();
}
protected function get_intro_text() {
if ( is_shop() ) {
$text = __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten.', 'siw' );
}
elseif ( is_product_category() ) {
$category_name = get_queried_object()->name;
$text = sprintf( __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten in %s.', 'siw' ), '<b>' . $category_name . '</b>' );
}
elseif ( is_product_taxonomy() ) {
$name = get_queried_object()->name;
switch ( get_queried_object()->taxonomy ) {
case 'pa_land':
$text = sprintf( __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten in %s.', 'siw' ), '<b>' . $name . '</b>' );
break;
case 'pa_soort-werk':
$text = sprintf( __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten met werkzaamheden gericht op %s.', 'siw' ), '<b>' . strtolower( $name ) . '</b>' );
break;
case 'pa_doelgroep':
$text = sprintf( __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten voor de doelgroep %s.', 'siw' ), '<b>' . strtolower( $name ) . '</b>' );
break;
case 'pa_taal':
$text = sprintf( __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten met de voertaal %s.', 'siw' ), '<b>' . ucfirst( $name ) . '</b>' );
break;
case 'pa_maand':
$text = sprintf( __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten in de maand %s.', 'siw' ), '<b>' . ucfirst( $name ) . '</b>' );
break;
default:
$text = __( 'Hieronder zie je het beschikbare aanbod Groepsprojecten.', 'siw' );
}
}
$workcamps_page_link = i18n::get_translated_page_url( siw_get_option( 'workcamps_explanation_page' ) );
$text .= SPACE .
__( 'Tijdens onze Groepsprojecten ga je samen met een internationale groep vrijwilligers voor 2 รก 3 weken aan de slag.', 'siw' ) . SPACE .
__( 'De projecten hebben vaste begin- en einddata.', 'siw' ) . SPACE .
sprintf( __( 'We vertellen je meer over de werkwijze van deze projecten op onze pagina <a href="%s">Groepsprojecten</a>.', 'siw' ), esc_url( $workcamps_page_link ) );
return $text;
}
protected function is_teaser_text_active() {
$teaser_text = siw_get_option( 'workcamp_teaser_text' );
$teaser_text_active = false;
if ( isset( $teaser_text['active'] ) &&
$teaser_text['active'] &&
date( 'Y-m-d' ) >= $teaser_text['start_date'] &&
date( 'Y-m-d' ) <= $teaser_text['end_date']
) {
$teaser_text_active = true;
}
return $teaser_text_active;
}
protected function get_teaser_text() {
if ( ! $this->is_teaser_text_active() ) {
return null;
}
$teaser_text = siw_get_option( 'workcamp_teaser_text' );
$contact_page_link = i18n::get_translated_page_url( siw_get_option( 'contact_page' ) );
$end_year = date( 'Y', strtotime( $teaser_text['end_date'] ) );
$end_month = date_i18n( 'F', strtotime( $teaser_text['end_date'] ) );
$teaser_text = sprintf( __( 'Vanaf %s wordt het aanbod aangevuld met honderden nieuwe vrijwilligersprojecten voor %s.', 'siw' ), $end_month, $end_year ). SPACE .
__( 'Wil je nu al meer weten over de grensverleggende mogelijkheden van SIW?', 'siw' ) . SPACE .
sprintf( __( '<a href="%s">Bel of mail ons</a> en we denken graag met je mee!', 'siw' ), esc_url( $contact_page_link ) );
return $teaser_text;
}
protected function get_sale_text() {
if ( ! Util::is_workcamp_sale_active() ) {
return null;
}
$regular = Formatting::format_amount( Properties::WORKCAMP_FEE_REGULAR );
$regular_sale = Formatting::format_amount( Properties::WORKCAMP_FEE_REGULAR_SALE );
$student = Formatting::format_amount( Properties::WORKCAMP_FEE_STUDENT );
$student_sale = Formatting::format_amount( Properties::WORKCAMP_FEE_STUDENT_SALE );
$end_date = Formatting::format_date( siw_get_option( 'workcamp_sale' )['end_date'], false );
$sale_text = sprintf( __( 'Meld je nu aan en betaal geen %s maar %s voor je vrijwilligersproject.', 'siw' ), $regular, '<b>'. $regular_sale .'</b>' ) . SPACE .
__( 'Ben je student of jonger dan 18 jaar?', 'siw' ) . SPACE .
sprintf( __( 'Dan betaal je in plaats van %s nog maar %s.', 'siw' ), $student, '<b>'. $student_sale .'</b>' ) . BR .
'<b>' . __( 'Let op:', 'siw' ) . '</b>' . SPACE .
sprintf( __( 'Deze actie duurt nog maar t/m %s, dus wees er snel bij.', 'siw' ), $end_date );
return $sale_text;
}
}