Крючок URL-адреса для оформления заказа WooCommerce - Изменение условий в зависимости от категории продукта
Интересно, может ли кто-нибудь помочь мне настроить этот код. Я хотел бы изменить применяемое условие в этом коде:
<?php
/*
Plugin Name: Modify Klarna Checkout URL
Plugin URI: http://krokedil.com
Description: Change checkout URL for Klarna Checkout if user isn't from a specific country
Version: 1.0
Author: Krokedil
Author URI: http://krokedil.com
*/
add_filter( 'woocommerce_get_checkout_url', 'krokedil_change_checkout_url', 30 );
function krokedil_change_checkout_url( $url ) {
$allowed_countries = array('NO');
$customer_country = WC()->customer->get_default_country();
if( !in_array( $customer_country , $allowed_countries ) ) {
$url = wc_get_page_permalink( 'checkout' );
}
return $url;
}
Возможно ли вместо этого для товаров, принадлежащих к какой-либо категории в WooCommerce, иметь пользовательский URL-адрес для оформления заказа?
Спасибо
3
Author: LoicTheAztec, 2016-08-08
1 answers
Да, это возможно, внеся некоторые изменения:
add_filter( 'woocommerce_get_checkout_url', 'krokedil_change_checkout_url', 30 );
function krokedil_change_checkout_url( $checkout_url ) {
// Define your SPECIAL CATEGORY here AND your CUSTOM URL
$my_cat = 'Cat name'; // or for multiple categories
// $my_cat = array('Cat name1', 'Cat name2');
$my_url = 'http://my_custom_url.com/checkout/'; // custom URL
$bool_cat = false;
if ( sizeof( WC()->cart->cart_contents) > 0 ) {
foreach ( WC()->cart->get_cart() as $cart_item ) {
$item = $cart_item['data'];
// => Updated a mistake in this line
if(!empty($item) && !$bool_cat && has_term( $my_cat, 'product_cat', $item->id ) ){
$bool_cat = true;
}
}
if ( $bool_cat ) {
$checkout_url = $my_url;
}
// This is optional
else {
$checkout_url = WC()->cart->get_checkout_url();
}
}
return $checkout_url;
}
Этот код находится в вашем файле плагина или на function.php файл вашей активной дочерней темы или темы
Ссылки:
2
Author: LoicTheAztec, 2017-05-23 12:19:23