PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
sitepress-multilingual-cms
/
inc
/
translation-proxy
<?php use \WPML\Collect\Support\Traits\Macroable; use function \WPML\FP\curryN; use \WPML\LIB\WP\Cache; use \WPML\FP\Logic; /** * Class TranslationProxy_Batch * * @method static callable|int getBatchId( ...$name ) :: string → int */ class TranslationProxy_Batch { use Macroable; public static function update_translation_batch( $batch_name = false, $tp_id = false ) { $batch_name = $batch_name ? $batch_name : ( ( (bool) $tp_id === false || $tp_id === 'local' ) ? self::get_generic_batch_name() : TranslationProxy_Basket::get_basket_name() ); if ( ! $batch_name ) { return null; } $getBatchId = function( $batch_name, $tp_id ) { $batch_id = self::getBatchId( $batch_name ); return $batch_id ? $batch_id : self::createBatchRecord( $batch_name, $tp_id ); }; $cache = Cache::memorizeWithCheck( 'update_translation_batch', Logic::isNotNull(), $getBatchId ); return $cache( $batch_name, $tp_id ); } /** * returns the name of a generic batch * name is built based on the current's date * * @param bool $isAuto * * @return string */ public static function get_generic_batch_name( $isAuto = false ) { return ( $isAuto ? 'Automatic Translations from ' : 'Manual Translations from ' ) . date( 'F \t\h\e jS\, Y' ); } /** * returns the id of a generic batch * * @return int */ private static function create_generic_batch() { $batch_name = self::get_generic_batch_name(); $batch_id = self::update_translation_batch( $batch_name ); return $batch_id; } public static function maybe_assign_generic_batch( $data ) { global $wpdb; $batch_id = $wpdb->get_var( $wpdb->prepare( "SELECT batch_id FROM {$wpdb->prefix}icl_translation_status WHERE translation_id=%d", $data['translation_id'] ) ); // if the batch id is smaller than 1 we assign the translation to the generic manual translations batch for today if the translation_service is local if ( ( $batch_id < 1 ) && isset( $data ['translation_service'] ) && $data ['translation_service'] == 'local' ) { // first we retrieve the batch id for today's generic translation batch $batch_id = self::create_generic_batch(); // then we update the entry in the icl_translation_status table accordingly $data_where = array( 'rid' => $data['rid'] ); $wpdb->update( $wpdb->prefix . 'icl_translation_status', array( 'batch_id' => $batch_id ), $data_where ); } } /** * @param $batch_name * @param $tp_id * * @return mixed */ private static function createBatchRecord( $batch_name, $tp_id ) { global $wpdb; $data = [ 'batch_name' => $batch_name, 'last_update' => date( 'Y-m-d H:i:s' ), ]; if ( $tp_id ) { $data['tp_id'] = $tp_id === 'local' ? 0 : $tp_id; } $wpdb->insert( $wpdb->prefix . 'icl_translation_batches', $data ); return $wpdb->insert_id; } } /** * @param $batch_name * * @return mixed */ TranslationProxy_Batch::macro( 'getBatchId', curryN( 1, function( $batch_name ) { global $wpdb; $batch_id_sql = "SELECT id FROM {$wpdb->prefix}icl_translation_batches WHERE batch_name=%s"; $batch_id_prepared = $wpdb->prepare( $batch_id_sql, $batch_name ); return $wpdb->get_var( $batch_id_prepared ); } ) );
[-] translationproxy-batch.class.php
[edit]
[-] wpml-translation-basket.class.php
[edit]
[-] translationproxy-service.class.php
[edit]
[-] translationproxy-popup.class.php
[edit]
[-] functions.php
[edit]
[-] translationproxy-translator.class.php
[edit]
[-] translationproxy.class.php
[edit]
[-] translationproxy-project.class.php
[edit]
[-] translationproxy-basket.class.php
[edit]
[-] wpml-pro-translation.class.php
[edit]
[-] translationproxy-api.class.php
[edit]
[+]
..
[-] translationproxy-popup.php
[edit]
[-] wpml-translationproxy-basket-networking.class.php
[edit]