obelix21 Δημοσ. 25 Απριλίου 2017 Δημοσ. 25 Απριλίου 2017 Γεια σας παιδιά Φτιάχνω ενα eshop με wordpress και woocommerce και έχω τραβήξει το xml απο κάποια εταιρεία για να ενσωματώνω αυτόματα τα προιόντα και τις διαθεσιμότητες. Είναι η πρωτη εταιρεία που αντί για διαθεσιμότητα σε αριθμό, το γράφει σαν HIGH, MEDIUM κτλ. Πως μπορώ να το εισάγω αυτό και να ελέγχει τις τιμές εγώ κανονίζοντας αν ειναι διαθέσιμο ή οχι; Χωρίς βεβαια να μου επηρεάσει και τις αλλες καταχωρίσεις που ειναι σωστές. Αν έχει σημασία χρησιμοποιώ το WP All import Ευχαριστώ προκαταβολικά
spacer Δημοσ. 25 Απριλίου 2017 Δημοσ. 25 Απριλίου 2017 Τι εννοείς να ελέγχεις τις τιμές από την διαθεσιμότητα; Η διαθεσιμότητα και η τιμή είναι 2 διαφορετικά πράγματα και το ένα δεν μπορεί να καθορίζει το άλλο από κατασκευής στο Woocommerce.
obelix21 Δημοσ. 25 Απριλίου 2017 Μέλος Δημοσ. 25 Απριλίου 2017 Εννοώ τις τιμές "LOW" "MEDIUM" κτλ σαν μεταβλητές του stock status.όχι τις τιμές πώλησης
angmar Δημοσ. 25 Απριλίου 2017 Δημοσ. 25 Απριλίου 2017 Φιλτράκι to the rescue. Αυτό add_filter( 'woocommerce_get_availability', 'my_custom_stock_notice', 1, 2); function my_custom_stock_notice( $availability, $_product ) { if ( $_product->is_in_stock() && $_product->get_stock_quantity() > 10 ) { $availability['availability'] = __('High Availability!', 'woocommerce'); $availability['class'] = 'in-stock stock-green'; } elseif ( $_product->is_in_stock() && $_product->get_stock_quantity() > 5 ) { $availability['availability'] = __('Medium Availability!', 'woocommerce'); $availability['class'] = 'in-stock stock-yellow'; } elseif ( $_product->is_in_stock() && $_product->get_stock_quantity() <= 5 ) { $availability['availability'] = __('Low Availability!', 'woocommerce'); $availability['class'] = 'in-stock stock-red'; } return $availability; } στο functions.php του child theme σου. Το παραπάνω θα σου αλλάξει το stock notice ανάλογα με τον αριθμό των διαθέσιμων κομματιών και θα σου δώσει και μια class για extra styling, πχ για να κάνεις το medium availability κίτρινο: p.stock.in-stock.stock-yellow { background-color: yellow; }
obelix21 Δημοσ. 25 Απριλίου 2017 Μέλος Δημοσ. 25 Απριλίου 2017 Σε ευχαριστώ. Αν και απο οτι βλέπω μάλλον καταλαβες το ακριβώς αντίθετο. Εγώ δεν θέλω να εμφανίζεται το low medium κτλ. Θελω απο ενα xml αρχείο του προμηθευτή μου να εισάγω κάπως της τιμές στο WP all import και να μου βγάζει απλά Διαθέσιμο ή μη διαθέσιμο. Στις μέχρι τώρα εταιρίες μου έδιναν αριθμό οπότε ήταν οκ. Επίσης βρήκα και εβαλα αυτό function add_custom_stock_type() { ?> <script type="text/javascript"> jQuery(function(){ jQuery('._stock_status_field').not('.custom-stock-status').remove(); }); </script> <?php woocommerce_wp_select( array( 'id' => '_stock_status', 'wrapper_class' => 'hide_if_variable custom-stock-status', 'label' => __( 'Stock status', 'woocommerce' ), 'options' => array( 'instock' => __( 'In stock', 'woocommerce' ), 'LOW' => __( 'LOW', 'woocommerce' ), 'MEDIUM' => __( 'MEDIUM', 'woocommerce' ), 'HIGH' => __( 'HIGH', 'woocommerce' ), 'UNAV' => __( 'UNAV', 'woocommerce' ), 'outofstock' => __( 'Out of stock', 'woocommerce' ), 'onrequest' => __( 'On Request', 'woocommerce' ), // The new option !!! ), 'desc_tip' => true, 'description' => __( 'Controls whether or not the product is listed as "in stock" or "out of stock" on the frontend.', 'woocommerce' ) ) ); } add_action('woocommerce_product_options_stock_status', 'add_custom_stock_type'); function save_custom_stock_status( $product_id ) { update_post_meta( $product_id, '_stock_status', wc_clean( $_POST['_stock_status'] ) ); } add_action('woocommerce_process_product_meta', 'save_custom_stock_status',99,1); function woocommerce_get_custom_availability( $data, $product ) { switch( $product->stock_status ) { case 'instock': $data = array( 'availability' => __( 'Διαθέσιμο. Αποστολή σε 1-3 εργάσιμες', 'woocommerce' ), 'class' => 'in-stock' ); break; case 'HIGH': $data = array( 'availability' => __( 'Διαθέσιμο. Αποστολή σε 1-3 εργάσιμες', 'woocommerce' ), 'class' => 'in-stock' ); break; case 'LOW': $data = array( 'availability' => __( 'Διαθέσιμο. Αποστολή σε 1-3 εργάσιμες', 'woocommerce' ), 'class' => 'in-stock' ); break; case 'MEDIUM': $data = array( 'availability' => __( 'Διαθέσιμο. Αποστολή σε 1-3 εργάσιμες', 'woocommerce' ), 'class' => 'in-stock' ); break; case 'UNAV': $data = array( 'availability' => __( 'Μη διαθέσιμο', 'woocommerce' ), 'class' => 'out-of-stock' ); break; case 'outofstock': $data = array( 'availability' => __( 'Μη διαθέσιμο', 'woocommerce' ), 'class' => 'out-of-stock' ); break; case 'onrequest': $data = array( 'availability' => __( 'On request', 'woocommerce' ), 'class' => 'on-request' ); break; } return $data; } add_action('woocommerce_get_availability', 'woocommerce_get_custom_availability', 10, 2); το οποίο ομως ενώ δουλευει άψογα βάζω την μεταβλητη availability στο xpath του stock-status, Μου έχει δημιουργήσει ενα πρόβλημα. Αυτό ειναι οτι μου κατήργησε την εικονίδιο προσθήκης στο καλάθι στα προιοντα που ειναι out of stock, ενω εχω επιλεγμένο κανονικά το backorders
spacer Δημοσ. 25 Απριλίου 2017 Δημοσ. 25 Απριλίου 2017 Τότε κανε μετατροπή το xml σε xls μεσώ του παρακάτω converter για ευκολότερη διαχείριση. Κανε replace μέσα από το excel το low medium κτλ. σε ότι value θέλεις. Κανε save σε excel αρχείο και όπως είναι import στο WP All Import. https://convertio.co/csv-xlsx/ Done!
obelix21 Δημοσ. 26 Απριλίου 2017 Μέλος Δημοσ. 26 Απριλίου 2017 Θέλω να το ορίσω cron job και να αυτοματοποιησουμε λίγο την διαδικασία...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα