我想在 Wp/Woocommerce /shop/ 页面上显示所有产品及其变体。(/woocommerce/archive-product.php)。我在下面描述的过程是我尝试让它发挥作用的过程。欢迎使用替代方案。
标准是什么:产品 A 和产品 B 在网站上显示。产品 A 有“广告到购物车”按钮。产品 B 有“选择选项”按钮。
我想要的:产品 A 是“简单”产品,在商店页面上显示 产品 B 是“可变”产品,有 2 种组合(黑色/蓝色)。添加到购物车按钮将此变体添加到购物车
我想在商店页面上显示 3 个产品,相当于 1* 产品 A 和 2* 产品 B。
到目前为止,我已经提取了产品是否可变的一些有关该产品变体的基本细节,但我似乎找不到缩略图?
$postId = get_the_ID();
$args = array(
'post_type' => 'product_variation',
'post_status' => array( 'private', 'publish' ),
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'asc',
'post_parent' => $postId
);
$variations = get_posts( $args );
//var_dump($variations);
//$p = get_post_meta($postId, '_product_attributes', true); // return pa_flavor
//var_dump($p);
if(!empty($variations)) {
foreach …Run Code Online (Sandbox Code Playgroud) 以下代码对于单个产品正确运行,但是我想将此代码用于几种产品的多种变体。
实际上,此代码将销售价格与销售价格开始之前的原始价格相加。
我正在计划销售,我想同时显示销售价格和原始的预售价格,以便客户看到折扣可以节省多少。
function cw_change_product_price_display( $price_html ) {
global $product;
global $woocommerce;
if ( $product->is_on_sale() ) {
return $price_html;
} elseif($product->get_sale_price()){
$price =wc_price($product->get_sale_price());
return $price_html . $price;
} else {
return $price_html;
}
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
Run Code Online (Sandbox Code Playgroud) 我已经为我的游戏循环实现了 rAF(requestAnimationFrame) 设置:
draw: function (x, y) {
setTimeout(function () {
requestAnimationFrame(function() {
Player.draw(150, 150);
});
//drawing code: worked perfectly with setInterval
}, 1000 / 60);
},
Run Code Online (Sandbox Code Playgroud)
它在一个Player对象中,在一个draw函数中。我打电话:
Player.draw(Player.x, Player.y);
Run Code Online (Sandbox Code Playgroud)
在代码的底部。
从我在类似问题上看到的情况来看,在评估之前需要声明图像。我已经使用立即调用的函数在顶部加载了图像:
var images = [];
x = 0;
(function() {
for (let i = 0; i < 20; i++) {
images[i] = new Image();
images[i].src = ('../webgame/assets/images/survivor-idle_shotgun_' + i + '.png');
};
})(); // This worked perfectly with setInterval too
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误:
未捕获的类型错误:无法在“CanvasRenderingContext2D”上执行“drawImage”:提供的值不是类型“(CSSImageValue或HTMLImageElement或SVGImageElement或HTMLVideoElement或HTMLCanvasElement或ImageBitmap或OffscreenCanvas)”
它指向这行代码:
ctx.drawImage(images[this.spriteCostumeCount], this.x, …Run Code Online (Sandbox Code Playgroud) 在Mozilla中使用DOMParser方法从XML字符串解析DOM上是否支持document.getElementById方法?我正在创建一个mozilla扩展,它读取xmlfile并使用DOM Parser将xml转换为DOM元素,并尝试通过Id获取元素.方法getElementsByTagName有效,但不是getElementById.它总是返回null.
function (xmlString) {
var parser = new DOMParser();
var doc = parser.parseFromString(xmlString, "text/xml");
var aNodes = doc.getElementsByTagName("nodeTag");
for(var i=0; i<aNodes.length; ++i) {
var id = aNodes[i].getAttribute('id');
var resultNode = doc.getElementById(id);
alert(id);
alert(resultNode);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的代码.alert(id)返回正确的id,其中alert(resultNode)每次都返回null.
我对 next.js 完全陌生,我需要你的帮助来解决一些我认为非常基本的问题,但我找不到我的错误或解释,我在互联网上找不到任何关于它的信息,所以我在这里:
当我在 pages 文件夹中创建文件时,一切正常(我的意思是 pages 文件夹中的每个文件都可以,除了_app.js或_document.js),我可以访问 URL,但我想在将来使用上下文、布局或身份验证,我需要使用在_app和_document覆盖很酷的事情,但我能写什么,我想它,看来我_app.js还是_document.js仅仅是没用的,从来不叫或我不知道,但他们从来没有工作。
我尝试了 2 个项目,这是我根据下一个文档所做的:首先, npx create-next-app 创建项目,然后_app.js在 pages 文件夹中添加一个example 并添加:
import React from 'react'
import App from 'next/app'
import Nav from '../components/nav'
class MyApp extends App {
// Only uncomment this method if you have blocking data requirements for
// every single page in your application. This disables the ability to
// perform automatic static optimization, causing every …Run Code Online (Sandbox Code Playgroud) 嗯,我是在 C++ 环境下长大的,所以我总是很清楚什么算法适合什么。因此,当我注意到应用程序在手机上开始表现迟缓时,我立即开始研究数据结构及其表示方式。
我注意到一个非常奇怪的效果Array.includes是比 快一个数量级Set.has。尽管Set.has查找优化的潜力更大:这是使用集合的整个想法。
我的初始化代码是(此代码超出了测试时间):
function shuffle(a) {
for (let i = a.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[a[i], a[j]] = [a[j], a[i]];
}
}
const arr = []
for (let i = 0; i < 1000; i+=1) {
arr.push(i);
};
shuffle(arr);
const prebuildset=new Set(arr);
Run Code Online (Sandbox Code Playgroud)
测试是:
(new Set(arr)).has(-1); //20.0 kOps/s
arr.includes(-1); //632 kOps/s
(new Set(arr)).has(0); //20.0 kOps/s
arr.includes(0); //720 kOps/s
prebuildset.has(-1); //76.7 kOps/s …Run Code Online (Sandbox Code Playgroud) 今天有人问了一个关于找出从 I 到数组末尾的数组中选择某些元素的问题,这让我想知道如何使用该filter方法来做到这一点。
有人提供的解决方案之一是使用slice,我知道您可以从一个索引到另一个索引进行选择,但是您将如何实现该filter方法来做同样的事情?
例子
let arr = ['bug', 'cat', 'dog', 'flea', 'bat', 'hat', 'rat'];
let newArr = arr.filter(element => element >= element.indexOf(3));
console.log(newArr);Run Code Online (Sandbox Code Playgroud)
这就是我想出的,它不起作用,但想法是选择索引为 3 或更大的所有字符串并将它们返回到另一个数组中。
javascript ×4
woocommerce ×2
wordpress ×2
arrays ×1
filter ×1
indexof ×1
lookup ×1
next.js ×1
performance ×1
php ×1
product ×1
xml ×1
xml-parsing ×1
xpcom ×1