WC()->session->get( 'cart' )
.WC()->cart->get_cart()
, WC_Cart. class My_ReviewsListTable extends Automattic\WooCommerce\Internal\Admin\ProductReviews\ReviewsListTable {
public function get_review_count($product_id) {
$args = [
'post_type' => 'product_review',
'post_status' => 'publish',
'meta_query' => [
[
'key' => 'custom_field',
'compare' => 'NOT EXISTS',
],
],
'fields' => 'ids',
];
if($product_id) {
$args['meta_query'][] = [
'key' => '_product_id',
'value' => $product_id,
'compare' => '=',
];
}
$query = new WP_Query($args);
return $query->found_posts;
}
}
function test() {
global $product;
if($product->get_price() == 0 || $product->get_price() == '') {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 99);
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
}
}
add_action('woocommerce_single_product_summary', 'test', 99);
add_action('woocommerce_after_shop_loop_item', 'test', 99);
function test() {
global $product;
if($product->is_type('variable')) {
$variations = $product->get_available_variations();
echo '<div class="custom-variations-wrapper">';
foreach($variations as $variation) {
if(isset($variation['display_price'])) {
$variation_id = $variation['variation_id'];
$variation_price = $variation['display_price']; // or 'display_regular_price'
echo '<form action="' . esc_url($product->add_to_cart_url()) . '" method="post" enctype="multipart/form-data">';
echo '<div class="variation" data-variation-id="' . esc_attr($variation_id) . '">';
echo '<p class="price">' . sprintf(__('%s'), wc_price($variation_price)) . '</p>';
echo '<input type="hidden" name="product_id" value="' . esc_attr($product->get_id()) . '" />';
echo '<input type="hidden" name="variation_id" value="' . esc_attr($variation_id) . '" />';
foreach($variation['attributes'] as $attribute => $value) {
echo '<input type="hidden" name="' . esc_attr($attribute) . '" value="' . esc_attr($value) . '">';
}
echo '<button type="submit">' . __('В корзину') . '</button>';
echo '</div>';
echo '</form>';
}
}
echo '</div>';
}
}
add_action('woocommerce_after_shop_loop_item', 'test', 20);
$response_body['data']['attributes']['redirect_url'];
$response_body['data']['attributes'];
$response_body['data']['attributes']['hpp_url'];
[status] => process_pending
, возможно, платеж еще не обработан и нужно время. Как заблюрить товары на страницах для незарегистрированных пользователей?
// functions.php:
function test() {
if (!is_user_logged_in()) {
wp_add_inline_style('woocommerce-general', '.product {filter: blur(5px)}');
}
}
add_action('wp_enqueue_scripts', 'test');
А также есть вопрос по закрытию доступа к заказу из корзины, если пользователь не авторизован.
// functions.php:
function test() {
if (!is_user_logged_in()) {
wp_redirect(get_permalink(wc_get_page_id('myaccount')));
exit;
}
}
add_action('woocommerce_before_checkout_form', 'test');
function test() {
global $product;
if ($product->is_type('variable')) {
$current_variation_id = $product->get_variation_id();
$variations = $product->get_available_variations();
foreach ($variations as $variation) {
if ($current_variation_id === $variation['variation_id']) {
if (isset($variation['variation_description'])) {
echo $variation['variation_description'];
}
break;
}
}
}
}
add_action('woocommerce_after_shop_loop_item', 'test');
но плагины которые я пробовал не работают.
Как на сайте wordpress сделать вход по смс через otp?
у них сделан вход по смс через OTP , как я понял это бесплатные СМС
Подскажите как можно подключить такое для своего сайта
нормально ли эта технология работает
или лучше остановиться на классическом входе по смс через провайдера
но у банка нету специального плагина для WooCommerce
Какие есть варианты, кроме написания своего плагина? Может есть что то готовое?
important
..woocommerce.single-product .product .summary.entry-summary {
display: grid;
}
.woocommerce.single-product .product .woocommerce-product-details__short-description {
order: 1;
}
.woocommerce.single-product .product .summary.entry-summary .price {
order: 2;
float: none;
}
.woocommerce.single-product .product form.cart {
order: 3;
}
.woocommerce.single-product .product .product_meta {
order: 4;
}
$query_args = array(
'showposts' => 5,
'post_status' => 'publish',
'post_type' => 'product',
'orderby' => 'date',
'order' => 'DESC',
);
$r = new WP_Query( $query_args );
if ( $r->have_posts() ) {
while ( $r->have_posts() ) {
$r->the_post();
// Вывод
}
}
wp_reset_postdata();