<?php
#Подключение JS
function my_enqueue_js() {
#Скрипт с обработчиком код скрипта ниже
wp_enqueue_script( 'my-ajax', get_template_directory_uri() . '/assets/js/my-ajax.js', array('jquery'), '1.0.0', true );
#Отпрака переменных в скрипт
wp_localize_script( 'my-ajax', 'MyAjax', array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'security' => wp_create_nonce( 'my-security-string' )
));
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_js' );
#Обработчик
function my_action_callback() {
check_ajax_referer( 'my-security-string', 'security' );
$int = intval( $_POST['int'] );
$int += 10;
echo $int;
wp_die();
}
#Добавление обработчика
# вешается на wp_ajax_{имя_экшена}
# имя экшена должно совпадать с тем, которое задано в js
add_action( 'wp_ajax_my_action', 'my_action_callback' );
#не забываем про nopriv для неавторизованных юзерей
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
jQuery(document).ready(function($) {
var $data = {
action: 'my_action',
security : MyAjax.security,
int: 1234
};
$.post(MyAjax.ajax_url, $data, function($response) {
alert('1234 + 10 = ' + $response);
});
});
главной и страницах каталога и категорий каталога.
if( is_front_page() || is_woocommerce() ) { }
# отключаете стандартные кнопки
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
# подключаете свои
remove_action( 'woocommerce_after_shop_loop_item', 'my_btn_to_cart');
remove_action( 'woocommerce_single_product_summary', 'my_btn_to_cart', 30 );
my_btn_to_cart()
подключаете свою кнопку, на которую вешаете, что хотите <?php if( ! wp_is_mobile() ) {
// тут код который не надо отображать на мобильных
} ?>
Попробовал сделать директорию 'eng' в корне и заинклудить папку с файлами из темы ,но в таком случае нет доступа к функциям вордпресс.
Может кто знает , как решить проблему с доступам к этим функциям ?
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
/**
* Get product variation dimensions
* @param $product_id int product_id
*
* @return array product variation dimensions
*/
function wpp_get_product_variation_dimensions($product_id) {
$product = get_product( $product_id );
$out = array();
if ( $product->is_type( 'variable' ) ) {
$variations = $product->get_available_variations();
foreach ( $variations as $variable_array ) {
$variation = new WC_Product( $variable_array[ 'variation_id' ] );
$out[ 'variation_' . $variation->id ] = array(
'weight' => $variation->weight,
'length' => $variation->length,
'width' => $variation->width,
'height' => $variation->height
);
}
}
return $out;
}
$tt = wpp_get_product_variation_dimensions(133821);
array( 2 ) {
[ "variation_133823" ]=>
array( 4 ) {
[ "weight" ]=>
string( 1 ) "3"
[ "length" ]=>
string( 3 ) "500"
[ "width" ]=>
string( 3 ) "700"
[ "height" ]=>
string( 3 ) "200"
}
[ "variation_133824" ]=>
array( 4 ) {
[ "weight" ]=>
string( 1 ) "2"
[ "length" ]=>
string( 3 ) "200"
[ "width" ]=>
string( 3 ) "270"
[ "height" ]=>
string( 3 ) "500"
}
}