File "class-location-store-address-meta-box.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/orderable/inc/modules/location/admin/meta-boxes/class-location-store-address-meta-box.php
File size: 5.87 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Module: Location.
*
* @since 1.18.0
* @package Orderable/Classes
*/
defined( 'ABSPATH' ) || exit;
/**
* Orderable_Location_Store_Address_Meta_Box class.
*/
class Orderable_Location_Store_Address_Meta_Box {
/**
* Init.
*/
public static function run() {
if ( ! is_admin() ) {
return;
}
add_filter( 'orderable_location_get_save_data', array( __CLASS__, 'get_save_data' ) );
}
/**
* Get the meta box title.
*
* @return string
*/
public static function get_title() {
return __( 'Address', 'orderable' );
}
/**
* Add the Meta Box.
*
* @return void
*/
public static function add() {
add_meta_box(
'orderable_multi_location_store_address_meta_box',
self::get_title(),
array( __CLASS__, 'output' )
);
}
/**
* Output the meta box.
*
* @return void
*/
public static function output() {
$location = new Orderable_Location_Single();
$data = $location->get_address();
if ( ! is_array( $data ) ) {
$data = array();
}
$data = wp_parse_args(
$data,
array(
'address_line_1' => '',
'address_line_2' => '',
'city' => '',
'country_state' => '',
'postcode_zip' => '',
)
);
if ( empty( $data['country_state'] ) ) {
$data['country_state'] = get_option( 'woocommerce_default_country', '' );
}
if ( strstr( $data['country_state'], ':' ) ) {
$country_state = explode( ':', $data['country_state'] );
$country = current( $country_state );
$state = end( $country_state );
} else {
$country = $data['country_state'];
$state = '*';
}
?>
<div class="orderable-fields-row orderable-fields-row--meta">
<div class="orderable-fields-row__body">
<div class="orderable-fields-row__body-row">
<div class="orderable-fields-row__body-row-left">
<h3><?php echo esc_html_x( 'Address Line 1', 'Location Address', 'orderable-pro' ); ?></h3>
</div>
<div class="orderable-fields-row__body-row-right orderable-fields-row__body-row-right--slug">
<input
type="text"
name='orderable_address_line_1'
class="orderable-field"
value="<?php echo esc_attr( $data['address_line_1'] ); ?>"
/>
<p class='orderable-field-error-message'></p>
</div>
</div>
<div class="orderable-fields-row__body-row">
<div class="orderable-fields-row__body-row-left">
<h3><?php echo esc_html_x( 'Address Line 2', 'Location Address', 'orderable-pro' ); ?></h3>
</div>
<div class="orderable-fields-row__body-row-right orderable-fields-row__body-row-right--slug">
<input
type="text"
name='orderable_address_line_2'
class="orderable-field"
value="<?php echo esc_attr( $data['address_line_2'] ); ?>"
/>
<p class='orderable-field-error-message'></p>
</div>
</div>
<div class="orderable-fields-row__body-row">
<div class="orderable-fields-row__body-row-left">
<h3><?php echo esc_html_x( 'City', 'Location Address', 'orderable-pro' ); ?></h3>
</div>
<div class="orderable-fields-row__body-row-right orderable-fields-row__body-row-right--slug">
<input
type="text"
name='orderable_city'
class="orderable-field"
value="<?php echo esc_attr( $data['city'] ); ?>"
/>
<p class='orderable-field-error-message'></p>
</div>
</div>
<div class="orderable-fields-row__body-row">
<div class="orderable-fields-row__body-row-left">
<h3><?php echo esc_html_x( 'Country / State', 'Location Address', 'orderable-pro' ); ?></h3>
</div>
<div class="orderable-fields-row__body-row-right orderable-fields-row__body-row-right--slug">
<select
name="orderable_country_state"
class="wc-enhanced-select orderable-field"
style="width: 426px;"
>
<?php WC()->countries->country_dropdown_options( $country, $state ); ?>
</select>
<p class='orderable-field-error-message'></p>
</div>
</div>
<div class="orderable-fields-row__body-row">
<div class="orderable-fields-row__body-row-left">
<h3><?php echo esc_html_x( 'Postcode / ZIP', 'Location Address', 'orderable-pro' ); ?></h3>
</div>
<div class="orderable-fields-row__body-row-right orderable-fields-row__body-row-right--slug">
<input
type="text"
name='orderable_post_code_zip'
class="orderable-field"
value="<?php echo esc_attr( $data['postcode_zip'] ); ?>"
/>
<p class='orderable-field-error-message'></p>
</div>
</div>
</div>
</div>
<?php
}
/**
* Get the default data.
*
* @param array $data The default data will be appended to $data.
* @return array
*/
public static function get_default_data( $data = array() ) {
if ( ! is_array( $data ) ) {
return $data;
}
$default_data = array(
'orderable_address_line_1' => '',
'orderable_address_line_2' => '',
'orderable_city' => '',
'orderable_country_state' => get_option( 'woocommerce_default_country', '' ),
'orderable_post_code_zip' => '',
);
return array_merge( $data, $default_data );
}
/**
* Return the data to be saved.
*
* @param array $data The data sent via POST will be appended to $data.
* @return array
*/
public static function get_save_data( $data ) {
if ( ! is_array( $data ) ) {
return $data;
}
$store_address_data = array(
'orderable_address_line_1' => Orderable_Location_Admin::get_posted_value( 'orderable_address_line_1' ),
'orderable_address_line_2' => Orderable_Location_Admin::get_posted_value( 'orderable_address_line_2' ),
'orderable_city' => Orderable_Location_Admin::get_posted_value( 'orderable_city' ),
'orderable_country_state' => Orderable_Location_Admin::get_posted_value( 'orderable_country_state' ),
'orderable_post_code_zip' => Orderable_Location_Admin::get_posted_value( 'orderable_post_code_zip' ),
);
return array_merge( $data, $store_address_data );
}
}