• Namespace
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hooks

Namespaces

  • None
  • SIW
    • Admin
    • API
    • Async
    • Batch
    • Compatibility
    • Data
    • Elements
    • Email
    • External
    • Forms
    • Modules
    • Newsletter
    • Page_Builder
    • Plato
    • Widgets
    • WooCommerce
      • Admin
      • Checkout
      • Email
      • Export
      • Frontend
      • Import

Classes

  • SIW\Admin\Admin
  • SIW\Admin\Admin_Bar
  • SIW\Admin\Notices
  • SIW\Admin\Options_Page
  • SIW\Admin\Properties_Page
  • SIW\Admin\Shortcodes
  • SIW\Admin\User_Columns
  • SIW\Animation
  • SIW\API\Endpoint
  • SIW\API\Newsletter_Subscribe
  • SIW\API\Postcode_Lookup
  • SIW\Assets
  • SIW\Async\Process_Stockphoto_Upload
  • SIW\Async\Request
  • SIW\Attachment
  • SIW\Autoloader
  • SIW\Batch\Count_Workcamps
  • SIW\Batch\Delete_Applications
  • SIW\Batch\Delete_Old_Posts
  • SIW\Batch\Delete_Orphaned_Variations
  • SIW\Batch\Delete_Workcamps
  • SIW\Batch\Job
  • SIW\Batch\Send_Workcamp_Approval_Emails
  • SIW\Batch\Update_Dutch_Workcamps
  • SIW\Batch\Update_Free_Places
  • SIW\Batch\Update_SEO_Noindex
  • SIW\Batch\Update_Taxonomies
  • SIW\Batch\Update_Workcamp_Tariffs
  • SIW\Batch\Update_Workcamp_Visibility
  • SIW\Batch\Update_Workcamps
  • SIW\Bootstrap
  • SIW\Compatibility\Caldera_Forms
  • SIW\Compatibility\Mailpoet
  • SIW\Compatibility\Meta_Box
  • SIW\Compatibility\Password_Protected
  • SIW\Compatibility\Pinnacle_Premium
  • SIW\Compatibility\Plugins
  • SIW\Compatibility\Safe_Redirect_Manager
  • SIW\Compatibility\SiteOrigin_Page_Builder
  • SIW\Compatibility\The_SEO_Framework
  • SIW\Compatibility\UpdraftPlus
  • SIW\Compatibility\WooCommerce
  • SIW\Compatibility\WordPress
  • SIW\Compatibility\WP_Rocket
  • SIW\Compatibility\WP_Sentry_Integration
  • SIW\Compatibility\WPML
  • SIW\CSS
  • SIW\Data\Continent
  • SIW\Data\Country
  • SIW\Data\Currency
  • SIW\Data\Language
  • SIW\Data\Social_Network
  • SIW\Data\Work_Type
  • SIW\Elements
  • SIW\Elements\Accordion
  • SIW\Elements\Carousel
  • SIW\Elements\Chart
  • SIW\Elements\Google_Maps
  • SIW\Elements\Interactive_Map
  • SIW\Elements\Interactive_Map_Destinations
  • SIW\Elements\Interactive_Map_ESC
  • SIW\Elements\Interactive_Map_Netherlands
  • SIW\Elements\Modal
  • SIW\Elements\Pie_Chart
  • SIW\Elements\Tablist
  • SIW\Elements\Taxonomy_Filter
  • SIW\Elements\World_Map
  • SIW\Email\Configuration
  • SIW\Email\Template
  • SIW\External\Exchange_Rates
  • SIW\External\Mailjet
  • SIW\External\Postcode_Lookup
  • SIW\External\Spam_Check
  • SIW\Formatting
  • SIW\Forms
  • SIW\Forms\Form
  • SIW\Forms\Processor_Spam_Check
  • SIW\Head
  • SIW\htaccess
  • SIW\HTML
  • SIW\i18n
  • SIW\Icons
  • SIW\Login
  • SIW\Media_Taxonomies
  • SIW\Modules\Cache_Rebuild
  • SIW\Modules\Cookie_Notice
  • SIW\Modules\Google_Analytics
  • SIW\Modules\Menu_Cart
  • SIW\Modules\Social_Share
  • SIW\Modules\Topbar
  • SIW\Newsletter\Confirmation_Email
  • SIW\Newsletter\Confirmation_Page
  • SIW\Newsletter\Hash
  • SIW\Options
  • SIW\Page_Builder\Animation
  • SIW\Page_Builder\Visibility
  • SIW\Plato\Download_File
  • SIW\Plato\Export
  • SIW\Plato\Export_Application
  • SIW\Plato\Import
  • SIW\Plato\Import_Dutch_Workcamps
  • SIW\Plato\Import_FPL
  • SIW\Plato\Import_Workcamps
  • SIW\Plato\Plato_Interface
  • SIW\Properties
  • SIW\Scheduler
  • SIW\Shortcodes
  • SIW\Update
  • SIW\Upload_Subdir
  • SIW\Util
  • SIW\Widgets
  • SIW\Widgets\Accordion
  • SIW\Widgets\Calendar
  • SIW\Widgets\Carousel
  • SIW\Widgets\Contact
  • SIW\Widgets\CTA
  • SIW\Widgets\Dutch_Projects
  • SIW\Widgets\Features
  • SIW\Widgets\Google_Maps
  • SIW\Widgets\Infobox
  • SIW\Widgets\Map
  • SIW\Widgets\Newsletter
  • SIW\Widgets\Organisation
  • SIW\Widgets\Pie_Chart
  • SIW\Widgets\Quick_Search_Form
  • SIW\Widgets\Quick_Search_Results
  • SIW\Widgets\Quote
  • SIW\Widgets\Tabs
  • SIW\Widgets\Widget
  • SIW\WooCommerce\Admin\Coupon
  • SIW\WooCommerce\Admin\Order
  • SIW\WooCommerce\Admin\Order_Columns
  • SIW\WooCommerce\Admin\Product
  • SIW\WooCommerce\Admin\Product_Columns
  • SIW\WooCommerce\Admin\Stockphoto_Page
  • SIW\WooCommerce\Checkout\Discount
  • SIW\WooCommerce\Checkout\Fields
  • SIW\WooCommerce\Checkout\Form
  • SIW\WooCommerce\Checkout\Newsletter
  • SIW\WooCommerce\Checkout\Terms
  • SIW\WooCommerce\Checkout\Validation
  • SIW\WooCommerce\Email\Customer_On_Hold_Order
  • SIW\WooCommerce\Email\Customer_Processing_Order
  • SIW\WooCommerce\Email\Emails
  • SIW\WooCommerce\Email\New_Order
  • SIW\WooCommerce\Export\Order
  • SIW\WooCommerce\Frontend\Archive
  • SIW\WooCommerce\Frontend\Archive_Header
  • SIW\WooCommerce\Frontend\Product
  • SIW\WooCommerce\Frontend\Product_Tabs
  • SIW\WooCommerce\Import\Product
  • SIW\WooCommerce\Import\Product_Image
  • SIW\WooCommerce\Import\Product_Variations
  • SIW_Content_Type
  • SIW_Content_Type_TM_Country
  • SIW_Post_Type
  • SIW_Post_Type_Agenda
  • SIW_Post_Type_Vacatures
  • SIW_Taxonomy

Functions

  • siw_generate_event_json_ld
  • siw_generate_interactive_map
  • siw_generate_job_json_ld
  • siw_get_board_titles
  • siw_get_continent
  • siw_get_continents
  • siw_get_countries
  • siw_get_country
  • siw_get_currencies
  • siw_get_currency
  • siw_get_data
  • siw_get_data_file_ids
  • siw_get_days
  • siw_get_dutch_provinces
  • siw_get_email_settings
  • siw_get_event_data
  • siw_get_featured_job
  • siw_get_genders
  • siw_get_interactive_maps
  • siw_get_job_data
  • siw_get_language
  • siw_get_language_skill_levels
  • siw_get_languages
  • siw_get_nationalities
  • siw_get_option
  • siw_get_project_types
  • siw_get_social_networks
  • siw_get_testimonial_quote
  • siw_get_testimonial_quote_categories
  • siw_get_upcoming_events
  • siw_get_work_type
  • siw_get_work_types
  • siw_meta
  • siw_newsletter_get_lists
  • siw_newsletter_get_subscriber_count
  • siw_newsletter_send_confirmation_email
  • siw_newsletter_subscribe
  • siw_set_option
  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 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 
<?php
/**
 * Functies m.b.t. referentiegegevens
 * 
 * @copyright 2019 SIW Internationale Vrijwilligersprojecten
 */

/**
 * Haalt data uit bestand
 * 
 * @since     3.0.0
 *
 * @param string $file
 * @return mixed
 */
function siw_get_data( string $file ) {
    $file = strtolower( str_replace( '_', '-', $file ) );

    $data_file = SIW_DATA_DIR . '/' . "{$file}.php";

    if ( ! file_exists( $data_file ) ) {
        return null;
    }
    $data = require $data_file;
    return $data;
}

/**
 * Wrapper om rwmb_meta
 * 
 * @since     3.0.0
 *
 * @param string $key
 * @param array $args
 * @param int $post_id
 * @return mixed
 */
function siw_meta( string $key, array $args = [], int $post_id = null ) {
    if ( function_exists( 'rwmb_meta' ) ) {
        return rwmb_meta( $key, $args, $post_id );
    }
    return null;
}

/**
 * Geeft data-file id's uit specifieke directory terug
 * 
 * @since     3.0.0
 *
 * @param string $directory
 * @return array
 */
function siw_get_data_file_ids( string $directory, bool $include_subdirectories = true ) {

    $base_directory = SIW_DATA_DIR . "/{$directory}";
    $files = glob( $base_directory . '/*.php' );
    if ( $include_subdirectories ) {
        $subdirectories = glob( $base_directory . '/*', GLOB_ONLYDIR );
        foreach ( $subdirectories as $subdirectory ) {
            $files = array_merge(
                $files,
                glob( $subdirectory . '/*.php' )
            );
        }
    }

    array_walk( $files, function( &$value, &$key, $base_directory) {
        $value = str_replace(
            [ $base_directory . '/', '.php', '-'],
            [ '', '', '_'],
            $value
        );
        $value = strtolower( $value );
    }, $base_directory );

    return $files;
}

/**
 * Geeft array met provincies van Nederland terug
 * 
 * @since     3.0.0
 *
 * @return array
 */
function siw_get_dutch_provinces() {
    $dutch_provinces = [
        'nb' => __( 'Brabant', 'siw' ),
        'dr' => __( 'Drenthe', 'siw' ),
        'fl' => __( 'Flevoland', 'siw' ),
        'fr' => __( 'Friesland', 'siw' ),
        'ge' => __( 'Gelderland', 'siw' ),
        'gr' => __( 'Groningen', 'siw' ),
        'li' => __( 'Limburg', 'siw' ),
        'nh' => __( 'Noord-Holland', 'siw' ),
        'ov' => __( 'Overijssel', 'siw' ),
        'ut' => __( 'Utrecht', 'siw' ),
        'ze' => __( 'Zeeland', 'siw' ),
        'zh' => __( 'Zuid-Holland', 'siw' ),
    ];
    return $dutch_provinces;
}

/**
 * Geeft array met bestuursfuncties terug
 * 
 * @since     3.0.0
 * 
 * @return array
 */
function siw_get_board_titles() {
    $titles = [
        'chair'        => __( 'Voorzitter', 'siw' ),
        'secretary'    => __( 'Secretaris' , 'siw' ),
        'treasurer'    => __( 'Penningmeester' , 'siw' ),
        'board_member' => __( 'Algemeen bestuurslid' , 'siw' ),
    ];
    return $titles;
}

/**
 * Geeft array met projectsoorten terug
 * 
 * @since     3.0.0
 * 
 * @return array
 * 
 * @todo moet hier altijd de duur/uitleg bij?
 */
function siw_get_project_types() {

    $project_types = [
        'groepsprojecten' => __( 'Groepsvrijwilligerswerk (2 - 3 weken)', 'siw' ),
        'op_maat'         => __( 'Vrijwilligerswerk Op Maat (3 weken tot een jaar)', 'siw' ),
        'esc'             => __( 'ESC (European Solidarity Corps)', 'siw' ),
    ];
    return $project_types;
}

/**
 * Geeft een array met geslachten terug
 * 
 * @since     3.0.0
 *
 * @return array
 */
function siw_get_genders() {
    $genders = [
        'M' => __( 'Man', 'siw' ),
        'F' => __( 'Vrouw', 'siw' ),
    ];
    return $genders;
}

/**
 * Geeft een array met nationaliteiten terug
 * 
 * @since     3.0.0
 *
 * @return array
 */
function siw_get_nationalities() {
    $nationalities = [ '' => __( 'Selecteer een nationaliteit', 'siw' ) ];
    $nationalities = $nationalities + siw_get_data( 'nationalities' );
    return $nationalities;
}

/**
 * Geeft array met dagen terug
 * 
 * Nummering volgens ISO-8601 (Maandag = 1, Zondag = 7)
 * @return array
 */
function siw_get_days() {
    $days = [
        1 => __( 'Maandag', 'siw' ),
        2 => __( 'Dinsdag', 'siw' ),
        3 => __( 'Woensdag', 'siw' ),
        4 => __( 'Donderdag', 'siw' ),
        5 => __( 'Vrijdag', 'siw' ),
        6 => __( 'Zaterdag', 'siw' ),
        7 => __( 'Zondag', 'siw' ),
    ];
    return $days;
}

/**
 * Haalt email-instellingen op
 *
 * @param string $id
 * @return array
 * 
 * @todo fallback naar admin-email
 */
function siw_get_email_settings( string $id ) {
    $mail_settings = siw_get_option( "{$id}_email" );
    if ( ! isset( $mail_settings['use_specific'] ) || ! $mail_settings['use_specific'] ) {
        $mail_settings = siw_get_option( 'email_settings' );
    }
    return $mail_settings;
}
SIW API documentation generated by ApiGen