Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
Γεια σας παιδιά

 

Φτιάχνω ενα eshop με wordpress και woocommerce και έχω τραβήξει το xml απο κάποια εταιρεία για να ενσωματώνω αυτόματα τα προιόντα και τις διαθεσιμότητες. Είναι η πρωτη εταιρεία που αντί για διαθεσιμότητα σε αριθμό, το γράφει σαν HIGH, MEDIUM κτλ. Πως μπορώ να το εισάγω αυτό και να ελέγχει τις τιμές εγώ κανονίζοντας αν ειναι διαθέσιμο ή οχι;

 

Χωρίς βεβαια να μου επηρεάσει και τις αλλες καταχωρίσεις που ειναι σωστές. Αν έχει σημασία χρησιμοποιώ το WP All import

 

Ευχαριστώ προκαταβολικά

Δημοσ.

Τι εννοείς να ελέγχεις τις τιμές από την διαθεσιμότητα; Η διαθεσιμότητα και η τιμή είναι 2 διαφορετικά πράγματα και το ένα δεν μπορεί να καθορίζει το άλλο από κατασκευής στο Woocommerce.

Δημοσ.

Φιλτράκι 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;
}
Δημοσ.

Σε ευχαριστώ. Αν και απο οτι βλέπω μάλλον καταλαβες το ακριβώς αντίθετο. Εγώ δεν θέλω να εμφανίζεται το 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

Δημοσ.

Τότε κανε μετατροπή το xml σε xls μεσώ του παρακάτω converter για ευκολότερη διαχείριση. Κανε replace μέσα από το excel το low medium κτλ. σε ότι value θέλεις. Κανε save σε excel αρχείο και όπως είναι import στο WP All Import.

 

https://convertio.co/csv-xlsx/

 

Done!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...