Comment on page
Χρήσιμα filters
Στο παρακάτω παράδειγμα ορίζουμε μέγιστο βάρος τα 2 κιλά εάν είναι πάνω απο 2, διαφορετικά θα πάρει το βάρος που έχει αυτόματα υπολογιστεί από τα προϊόντα
function myweight($weight){
if ($weight > 2){
$newweight = 2;
}else{
$newweight = $weight;
}
return $newweight;
}
add_filter( 'iben_speedex_filter_Voucher_Weight_order_metabox', 'myweight' );
Στο παρακάτω παράδειγμα ορίζουμε το βάρος υπολογίζοντας το ύψος * πλάτος * βάθος / 5000 του κάθε προϊόντος της παραγγελίας. Θα χρησιμοποιηθεί η μεγαλύτερη τιμή. Είτε η ογκοχρέωση είτε το συνολικό βάρος.
function iben_speedex_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_speedex_filter_Voucher_Weight_order_metabox', 'iben_speedex_change_weight', 10, 2);
Εαν έχετε custom πεδίο στο checkout, πχ Κινητό και meta name είναι _billing_mobile κανένα πρόβλημα.
Σε άλλη περίπτωση εαν το custom πεδίο σας έχει διαφορετικό meta name τότε θα πρέπει να τρέξετε το παρακάτω κώδικα στο αρχείο chilld functions.php και απλά αλλάξτε το όνομα _billing_mobile με το δικό σας meta όνομα.
Η κάτω παύλα ( _ ) είναι απαραίτητη.
function mycustomphonefield(){
return '_billing_mobile';
}
add_filter( 'iben_speedex_filter_phone2_metafield_order_metabox', 'mycustomphonefield' );
iben_speedex_filter_Comments_2853_1_order_metabox
iben_speedex_filter_multi_create_comments_metafield_order
Για τα σχόλια / παρατηρήσεις του voucher
iben_speedex_filter_multi_create_cash_metafield_order
Για την αντικαταβολή του voucher
Σε κάποιες περιπτώσεις που χρησιμοποιείται μέθοδο πληρωμής (αντικαταβολή) από κάποιο άλλο plugin ή custom. Σε αυτή την περίπτωση το plugin δεν γνωρίζει εαν είναι αντικαταβολή και να προστεθεί αυτόματα στο πεδίο.
alg_custom_gateway_1 = Είναι το ID της μεθόδου πληρωμής
function iben_speedex_cash_delivery_add_alg_custom1(){
return $payments = array('cod','alg_custom_gateway_1');
}
add_filter('iben_speedex_filter_cashdelivery_payments_order_metabox', 'iben_speedex_cash_delivery_add_alg_custom1');
Αύξηση+3 ευρώ στο ποσό της αντικαταβολής του voucher εαν ειναι πληρωμή με αντικαταβολή
function iben_speedex_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_speedex_filter_multi_create_cash_metafield_order', 'iben_speedex_change_cashdelivery', 10, 2);
add_filter('iben_speedex_filter_Pod_Amount_Cash_order_metabox', 'iben_speedex_change_cashdelivery', 10, 2);
function iben_speedex_add_order_number_comments($comment, $order_id){
$order = wc_get_order($order_id);
if (!is_object($order)){
return;
}
//GET ORDER COMMENTS
$comments = $order->get_customer_note();
$order_number = $order->get_order_number();
return 'Παραγγελία ID:'.$order_number.' '.$comments;
}
//ενεργοποίηση εκτύπωσης σχολίων στο voucher για την μαζική
add_filter( 'iben_speedex_filter_multi_create_enable_comments_metafield_order', '__return_true' );
//τα hook filters
add_filter('iben_speedex_filter_multi_create_comments_metafield_order', 'iben_speedex_display_products_in_comments', 10, 2 );
add_filter('iben_speedex_filter_Paratiriseis_2853_1_order_metabox', 'iben_speedex_add_order_number_comments', 10, 2);
function iben_speedex_display_products_in_comments($comments, $order_id){
$order = wc_get_order($order_id);
if (!is_object($order)){
return;
}
$export = '';
if ($order->get_items()){
$count = count($order->get_items());
$index = 0;
foreach( $order->get_items() as $item_id => $product_item ){
$index++;
$product = $product_item->get_product();
//$export .= $product->get_name().' x '.$product_item->get_quantity().($index == $count ? '': ', ');
$export .= $product->get_sku().' x '.$product_item->get_quantity().($index == $count ? '': ', ');
}
}
// Εμφάνιση προιόντων μόνο
return $export;
// Εμφάνιση σχόλια πελάτη + προιόντα
// return $comments.' '.$export;
}
//ενεργοποίηση εκτύπωσης σχολίων στο voucher για την μαζική
add_filter( 'iben_speedex_filter_multi_create_enable_comments_metafield_order', '__return_true' );
add_filter('iben_speedex_filter_Paratiriseis_2853_1_order_metabox', 'iben_speedex_display_products_in_comments', 10, 2 );
add_filter('iben_speedex_filter_multi_create_comments_metafield_order', 'iben_speedex_display_products_in_comments', 10, 2 );

add_filter( 'iben_speedex_filter_listvouchers_displaycod_all', '__return_true' );
add_filter( 'iben_speedex_filter_listvouchers_displaycod_delivered', '__return_true' );
add_filter( 'iben_speedex_filter_listvouchers_displaycod_undelivered', '__return_true' );
Last modified 1yr ago