Χρήσιμα filters

Βάρος

Στο παρακάτω παράδειγμα ορίζουμε μέγιστο βάρος τα 2 κιλά εάν είναι πάνω απο 2, διαφορετικά θα πάρει το βάρος που έχει αυτόματα υπολογιστεί από τα προϊόντα
function myweight($weight){
if ($weight > 2){
$newweight = 2;
}else{
$newweight = $weight;
}
return $newweight;
}
add_filter( 'iben_elta_filter_weight_order_metabox', 'myweight' );

Βάρος από τις διαστάσεις (ογκοχρέωση )

Στο παρακάτω παράδειγμα ορίζουμε το βάρος υπολογίζοντας το ύψος * πλάτος * βάθος / 5000 του κάθε προϊόντος της παραγγελίας. Θα χρησιμοποιηθεί η μεγαλύτερη τιμή. Είτε η ογκοχρέωση είτε το συνολικό βάρος.
function iben_change_weight($weight, $order_id){
$order = wc_get_order($order_id);
if ( !is_a( $order, 'WC_Order' ) ){
return;
}
$total_weight_dim = 0;
$final_weight = 0;
foreach( $order->get_items() as $item_id => $product_item ){
$quantity = $product_item->get_quantity(); // get quantity
$product = $product_item->get_product(); // get the WC_Product object
if( $product ) {
$height = ($product->get_height() >= 0 ? $product->get_height() : 0);
$width = ($product->get_width() >= 0 ? $product->get_width() : 0);
$length = ($product->get_length() >= 0 ? $product->get_length() : 0);
$total_weight_dim += $quantity * (($height * $width * $length) / 5000);
}
}
//&& $weight != 0
if ($total_weight_dim > $weight){
$final_weight = $total_weight_dim;
}else{
$final_weight = $weight;
}
return $final_weight;
}
add_filter('iben_elta_filter_weight_order_metabox', 'iben_change_weight', 10, 2);

Τηλέφωνο 2 ή κινητό σε custom πεδίο

Εαν έχετε custom πεδίο στο checkout, πχ Κινητό και meta name είναι _billing_mobile κανένα πρόβλημα.
Σε άλλη περίπτωση εαν το custom πεδίο σας έχει διαφορετικό meta name τότε θα πρέπει να τρέξετε το παρακάτω κώδικα στο αρχείο chilld functions.php και απλά αλλάξτε το όνομα _billing_mobile με το δικό σας meta όνομα.
Η κάτω παύλα ( _ ) είναι απαραίτητη.
function mycustomphonefield(){
return '_billing_mobile';
}
add_filter( 'iben_elta_filter_phone2_metafield_order_metabox', 'mycustomphonefield' );

Άλλα filters

iben_elta_filter_comments_order_metabox
Για τα σχόλια / παρατηρήσεις του voucher
iben_elta_filter_cashdelivery_order_metabox
Για την αντικαταβολή του voucher

Αναγνώριση 3rd party πληρωμή αντικαταβολής

Σε κάποιες περιπτώσεις που χρησιμοποιείται μέθοδο πληρωμής (αντικαταβολή) από κάποιο άλλο plugin ή custom. Σε αυτή την περίπτωση το plugin δεν γνωρίζει εαν είναι αντικαταβολή και να προστεθεί αυτόματα στο πεδίο.
alg_custom_gateway_1 = Είναι το ID της μεθόδου πληρωμής
// require >= 1.6.0.1
function iben_elta_cash_delivery_add_alg_custom1(){
return $payments = array('alg_custom_gateway_1');
}
add_filter('iben_elta_filter_cashdelivery_payments_order_metabox', 'iben_elta_cash_delivery_add_alg_custom1');

Φορμάτ τηλεφώνου

Η παρακάτω συνάρτηση θα διορθώσει τα κινητά ή τα σταθερά τηλέφωνα σε 10 αριθμούς
π.χ.
+30 693 82 12 126 -> 6938212126
+30 6938212126 -> 6938212126
// require >= 1.7.2
function iben_elta_change_phone_format($phone){
$country_code = '30';
if ($phone && strlen($phone) > 10){
// remove spaces
$phone = str_replace(" ","",$phone);
// remove +30
$phone = preg_replace("/^\+?{$country_code}/", '',$phone);
return trim($phone);
}else{
return $phone;
}
}
add_filter('iben_elta_phone_format', 'iben_elta_change_phone_format', 10);

Αλλαγή φιλικής ονομασίας 1 λογαριασμού

//require version > 1.7.6
function iben_elta_change_1st_account_name(){
return 'Αλλο ονομα 1';
}
add_filter('iben_elta_filter_order_elta_1st_account_name', 'iben_elta_change_1st_account_name');

Αλλαγή φιλικής ονομασίας 2 λογαριασμού

function iben_elta_change_2nd_account_name(){
return 'Αλλο ονομα 2';
}
add_filter('iben_elta_filter_order_elta_2nd_account_name', 'iben_elta_change_2nd_account_name');

Αλλαγή προκαθορισμένου λογαριασμού

Μπορείτε να χρησιμοποιείτε ο δεύτερος λογαρισμός ΕΛΤΑ κουριερ ανάλογα το βάρος της παραγγελίας
//require version > 1.7.6
function iben_change_default_account($default_account, $weight, $order_id){
if ( intval($weight) < 7){
$account = 1;
}else{
$account = 2;
}
return $account;
}
add_filter('iben_elta_filter_order_elta_account', 'iben_change_default_account', 10, 3);

Αύξηση αντικαταβολής κατά 3 ευρώ

Αύξηση+3 ευρώ στο ποσό της αντικαταβολής του voucher εαν ειναι πληρωμή με αντικαταβολή
function iben_elta_change_cashdelivery($cash, $order_id){
$order = wc_get_order($order_id);
if ( !is_a( $order, 'WC_Order' ) ){
return 0;
}
$payment = $order->get_payment_method();
$payments = array('cod', 'id_codfee');
if (in_array($payment, $payments, true)) {
return $cash + 3;
}else{
return 0;
}
}
add_filter('iben_elta_filter_cashdelivery_order_metabox', 'iben_elta_change_cashdelivery', 10, 2);

Εμφάνιση σύνολο αντικαταβολών στην λίστα των vouchers

add_filter( 'iben_elta_filter_listvouchers_displaycod_all', '__return_true' );
add_filter( 'iben_elta_filter_listvouchers_displaycod_delivered', '__return_true' );
add_filter( 'iben_elta_filter_listvouchers_displaycod_undelivered', '__return_true' );