//
// New Post Type
//
add_action('init', 'engage_team_register');
function engage_team_register() {
$args = array(
'label' => esc_html__('Team Members', 'crexis'),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => true,
'rewrite' => true,
'menu_icon' => 'dashicons-groups',
'supports' => array('title','thumbnail')
);
register_post_type( 'team' , $args );
register_taxonomy(
"member-position",
array("team"),
array(
"hierarchical" => true,
"context" => "normal",
'show_ui' => true,
"label" => "Member Position",
"singular_label" => "Member Position",
"rewrite" => true
)
);
}
//
// Thumbnail column
//
add_filter( 'manage_edit-team_columns', 'engage_team_columns_settings' ) ;
function engage_team_columns_settings( $columns ) {
$columns = array(
'cb' => '',
'title' => esc_html__('Title', 'crexis'),
'date' => esc_html__('Date', 'crexis'),
'slider-thumbnail' => ''
);
return $columns;
}
add_action( 'manage_team_posts_custom_column', 'engage_team_columns_content', 10, 2 );
function engage_team_columns_content( $column, $post_id ) {
global $post;
the_post_thumbnail('thumbnail', array('class' => 'column-img'));
}
if( !function_exists( 'engage_team_member_categories' ) ) {
function engage_team_member_categories() {
global $post;
$terms = wp_get_object_terms($post->ID, "member-position");
if($terms) {
foreach ( $terms as $term ) {
echo $term->name;
if(end($terms) !== $term){
echo ", ";
}
}
}
}
}
if( !function_exists( 'engage_team_member_class' ) ) {
function engage_team_member_class(){
global $post;
$output = '';
$terms = wp_get_object_terms($post->ID, "member-position");
foreach ( $terms as $term ) {
$output .= $term->slug . " ";
}
return $output;
}
}/**
* WooCommerce Admin Updates
*
* Functions for updating data, used by the background updater.
*
* @package WooCommerce\Admin
*/
use \Automattic\WooCommerce\Admin\Install as Installer;
use \Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes;
use \Automattic\WooCommerce\Admin\Notes\UnsecuredReportFiles;
use \Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes_Deactivate_Plugin;
use \Automattic\WooCommerce\Admin\ReportExporter;
/**
* Update order stats `status` index length.
* See: https://github.com/woocommerce/woocommerce-admin/issues/2969.
*/
function wc_admin_update_0201_order_status_index() {
global $wpdb;
// Max DB index length. See wp_get_db_schema().
$max_index_length = 191;
$index = $wpdb->get_row( "SHOW INDEX FROM {$wpdb->prefix}wc_order_stats WHERE key_name = 'status'" );
if ( property_exists( $index, 'Sub_part' ) ) {
// The index was created with the right length. Time to bail.
if ( $max_index_length === $index->Sub_part ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName
return;
}
// We need to drop the index so it can be recreated.
$wpdb->query( "DROP INDEX `status` ON {$wpdb->prefix}wc_order_stats" );
}
// Recreate the status index with a max length.
$wpdb->query( $wpdb->prepare( "ALTER TABLE {$wpdb->prefix}wc_order_stats ADD INDEX status (status(%d))", $max_index_length ) );
}
/**
* Update DB Version.
*/
function wc_admin_update_0201_db_version() {
Installer::update_db_version( '0.20.1' );
}
/**
* Rename "gross_total" to "total_sales".
* See: https://github.com/woocommerce/woocommerce-admin/issues/3175
*/
function wc_admin_update_0230_rename_gross_total() {
global $wpdb;
// We first need to drop the new `total_sales` column, since dbDelta() will have created it.
$wpdb->query( "ALTER TABLE {$wpdb->prefix}wc_order_stats DROP COLUMN `total_sales`" );
// Then we can rename the existing `gross_total` column.
$wpdb->query( "ALTER TABLE {$wpdb->prefix}wc_order_stats CHANGE COLUMN `gross_total` `total_sales` double DEFAULT 0 NOT NULL" );
}
/**
* Update DB Version.
*/
function wc_admin_update_0230_db_version() {
Installer::update_db_version( '0.23.0' );
}
/**
* Remove the note unsnoozing scheduled action.
*/
function wc_admin_update_0251_remove_unsnooze_action() {
as_unschedule_action( WC_Admin_Notes::UNSNOOZE_HOOK, null, 'wc-admin-data' );
as_unschedule_action( WC_Admin_Notes::UNSNOOZE_HOOK, null, 'wc-admin-notes' );
}
/**
* Update DB Version.
*/
function wc_admin_update_0251_db_version() {
Installer::update_db_version( '0.25.1' );
}
/**
* Remove Facebook Extension note.
*/
function wc_admin_update_110_remove_facebook_note() {
WC_Admin_Notes::delete_notes_with_name( 'wc-admin-facebook-extension' );
}
/**
* Update DB Version.
*/
function wc_admin_update_110_db_version() {
Installer::update_db_version( '1.1.0' );
}
/**
* Remove Dismiss action from tracking opt-in admin note.
*/
function wc_admin_update_130_remove_dismiss_action_from_tracking_opt_in_note() {
global $wpdb;
$wpdb->query( "DELETE actions FROM {$wpdb->prefix}wc_admin_note_actions actions INNER JOIN {$wpdb->prefix}wc_admin_notes notes USING (note_id) WHERE actions.name = 'tracking-dismiss' AND notes.name = 'wc-admin-usage-tracking-opt-in'" );
}
/**
* Update DB Version.
*/
function wc_admin_update_130_db_version() {
Installer::update_db_version( '1.3.0' );
}
/**
* Change the deactivate plugin note type to 'info'.
*/
function wc_admin_update_140_change_deactivate_plugin_note_type() {
global $wpdb;
$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}wc_admin_notes SET type = 'info' WHERE name = %s", WC_Admin_Notes_Deactivate_Plugin::NOTE_NAME ) );
}
/**
* Update DB Version.
*/
function wc_admin_update_140_db_version() {
Installer::update_db_version( '1.4.0' );
}
/**
* Delete the preexisting export files.
*/
function wc_admin_update_151_delete_report_downloads() {
$upload_dir = wp_upload_dir();
$base_dir = trailingslashit( $upload_dir['basedir'] );
$failed_files = array();
$exports_status = get_option( ReportExporter::EXPORT_STATUS_OPTION, array() );
$has_failure = false;
if ( ! is_array( $exports_status ) ) {
// This is essentially the same path as files failing deletion. Handle as such.
return;
}
// Delete all export files based on the status option values.
foreach ( $exports_status as $key => $progress ) {
list( $report_type, $export_id ) = explode( ':', $key );
if ( ! $export_id ) {
continue;
}
$file = "{$base_dir}wc-{$report_type}-report-export-{$export_id}.csv";
$header = $file . '.headers';
// phpcs:ignore
if ( @file_exists( $file ) && false === @unlink( $file ) ) {
array_push( $failed_files, $file );
}
// phpcs:ignore
if ( @file_exists( $header ) && false === @unlink( $header ) ) {
array_push( $failed_files, $header );
}
}
// If the status option was missing or corrupt, there will be files left over.
$potential_exports = glob( $base_dir . 'wc-*-report-export-*.csv' );
$reports_pattern = '(revenue|products|variations|orders|categories|coupons|taxes|stock|customers|downloads)';
/**
* Look for files we can be reasonably sure were created by the report export.
*
* Export files we created will match the 'wc-*-report-export-*.csv' glob, with
* the first wildcard being one of the exportable report slugs, and the second
* being an integer with 11-14 digits (from microtime()'s output) that represents
* a time in the past.
*/
foreach ( $potential_exports as $potential_export ) {
$matches = array();
// See if the filename matches an unfiltered export pattern.
if ( ! preg_match( "/wc-{$reports_pattern}-report-export-(?P\d{11,14})\.csv\$/", $potential_export, $matches ) ) {
$has_failure = true;
continue;
}
// Validate the timestamp (anything in the past).
$timestamp = (int) substr( $matches['export_id'], 0, 10 );
if ( ! $timestamp || $timestamp > time() ) {
$has_failure = true;
continue;
}
// phpcs:ignore
if ( false === @unlink( $potential_export ) ) {
array_push( $failed_files, $potential_export );
}
}
// Try deleting failed files once more.
foreach ( $failed_files as $failed_file ) {
// phpcs:ignore
if ( false === @unlink( $failed_file ) ) {
$has_failure = true;
}
}
if ( $has_failure ) {
UnsecuredReportFiles::possibly_add_note();
}
}
/**
* Update DB Version.
*/
function wc_admin_update_151_db_version() {
Installer::update_db_version( '1.5.1' );
}
Precintos para catering aéreo – Poliplastic S.R.L.
En el sector aéreo, todos los alimentos y productos de venta a bordo deben estar estrictamente controlados frente a las posibles inspecciones de las autoridades sanitarias, fiscales y, por supuesto, a las aduaneras. En este contexto, los precintos para catering aéreo cobran especial importancia: ellos garantizan tanto la identificación como la no manipulación de este tipo de armarios en el avión.
La utilización de precintos de seguridad es necesaria desde los puntos de vista:
Sanitario: la cadena de frío debe ser respetada en todo momento, ya que es la que limita la proliferación de microorganismos. Los precintos de seguridad garantizan la trazabilidad de los alimentos en todo momento durante el transporte y evitan manipulaciones no autorizadas. Aduanero: los alimentos y productos que se transportan en los carritos de catering deben declararse ante las autoridades. La comida que se consume no entra dentro del marco fiscal de importación/exportación, pero sí debe constar su transporte ante una posible inspección. En este sentido, los precintos de seguridad funcionan entonces como un dispositivo de control que evita irregularidades. De la seguridad de los productos: los precintos de seguridad también pretenden evitar robos indeseados de la mercancía que protegen. En este caso, los trolleys no solo transportan la comida de los pasajeros, sino también llevan todos los productos de venta a bordo que se ofrecen en el avión.
0 Comentarios
Deja un comentario