// functions.php or any plugin
function test($content) {
// Регулярка для поиска изображений
$pattern = '/<img[^>]+src="([^"]+)"[^>]+>/';
preg_match_all($pattern, $content, $m);
if (isset($m[1])) {
foreach ($m[1] as $i => $url) {
// Получаем url "полного" изображения
$full_url = preg_replace('/-\d+x\d+(\.\w+)$/', '$1', $url);
// Изменяем стандартный <img/> на <a><img/></a>
$r = '<a href="' . $full_url . '" target="_blank">' . $m[0][$i] . '</a>';
$content = str_replace($m[0][$i], $r, $content);
}
}
return $content;
}
add_filter('the_content', 'test');
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;
}
}
Я хочу отредактировать тему Вордпресса, распространяемую под лицензией GNU General Public License v2.
Я могу использовать эту модифицированную тему для своего сайта в интернете? Как сделать это правильно, чтобы избежать юридических казусов?
Мне кажется, что использование модифицированной темы на сайте в интернете не является распространением, так ли это?
Корректно ли это делать при каждом просмотре поста?
Или тут зависит от посещаемости? Чем больше она, тем больше проблем от этого способа будет?
Хотел узнать, каким образом правильно обновлять количество просмотров в БД.
Или данные где-то сохраняются и в базу добавляются потом, а не так часто?
преподаватель сказал, что нам нельзя использовать Woocommerce, Elementor для создания магазина.
Подскажите, пожалуйста, как можно создать более менее рабочий магазин?
и прочие функции типичного Интернет магазина.
Не очень понимаю, как возможно реализовать "добавление товара в корзину"
if (!session_id()) {
session_start();
}
function test_session() {
if (!session_id()) {
session_start();
}
}
add_action('init', 'test_session', 1);
function add_to_cart($id, $q = 1) {
if (isset($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id] += $q;
} else {
$_SESSION['cart'][$id] = $q;
}
}
function show_cart() {
if (!empty($_SESSION['cart'])) {
foreach($_SESSION['cart'] as $id => $q) {
$product = get_post($id);
echo "<div>{$product->post_title} (x$q)</div>";
}
} else {
echo "Cart has empty";
}
}
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
, возможно, платеж еще не обработан и нужно время. function test() {
register_taxonomy_for_object_type('category', 'page');
register_taxonomy_for_object_type('post_tag', 'page');
}
add_action('init', 'test');
// add custom column
function add_custom_column($columns) {
$columns['short_description'] = __('Краткое описание', 'my_custom_plugin');
unset($columns['description']);
return $columns;
}
add_filter('manage_edit-category_columns', 'add_custom_column');
// fill custom column
function fill_custom_column($deprecated, $column_name, $term_id) {
if('short_description' === $column_name) {
$term = get_term($term_id);
echo mb_substr($term->description, 0, 20) . (mb_strlen($term->description) > 20 ? '…' : '');
}
}
add_action('manage_category_custom_column', 'fill_custom_column', 10, 3);
add_action('init', function() {
$limit = 140;
$count_users = count_users();
$total_users = $count_users['total_users'];
if($total_users > $limit) {
update_option('users_can_register', false);
} else {
update_option('users_can_register', true);
}
});
Как заблюрить товары на страницах для незарегистрированных пользователей?
// 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');