我想为 WordPress 网站建立一个 WooCommerce 商店(顺便说一下,我以前从未做过)。
但是,我不想使用任何类型的 WooCommerce 生成的页面。
我想要的是添加/删除产品(以及所有其他相关产品数据)、创建类别、子类别等。使用 Wordpress 仪表板内部的 WooCommerce“控制面板”,每次我这样做时,我都想要一个 WooCommerce 对象(包含所有这些数据)要更新/生成并在所有(或某些特定)页面上可用。
这样做的原因是因为我想自己构建所有内容(产品页面、购物车页面、结帐页面、类别页面、子类别页面)。
但是,为了使用相关数据填充这些页面,我需要从这些页面中的任何一个访问整个 WooCommerce 数据。
一些例子将更好地解释我想要实现的目标。(注意:我将使用 Javascript 并在客户端生成所有内容)
案例#1 假设我在“商店”页面,我想用所有可用的产品类别填充一列。我需要能够做这样的事情:
var wooCommerceShopData = getAllWooCommerceShopData(); // an Ajax request that will fetch me all that data
var arrayOfAllAvailableCategories = wooCommerceShopData.categories;
Run Code Online (Sandbox Code Playgroud)
案例#2
现在假设我属于“运动服”类别。我需要能够做这样的事情:
var wooCommerceShopData = getAllWooCommerceShopData();
var productsObjectForCurrentCategory = wooCommerceShopData.categories["sportswear"].products;
Run Code Online (Sandbox Code Playgroud)
案例#3
如果我在“运动装”类产品页面上,我需要能够执行以下操作:
var wooCommerceShopData = getAllWooCommerceShopData();
var currentProductData = wooCommerceShopData.categories["sportswear"].products["BLK123XMENSHORTS"];
var currentProductPrice = currentProductData.price;
// etc......
Run Code Online (Sandbox Code Playgroud)
这可能吗?是否有 WooCommerce/Wordpress API?
考虑以下三角形:

我想计算角度X.
我有以下内容:
var opposite = 2.5;
var hypotenuse = 5;
var sinOfAngleX = opposite / hypotenuse; // 0.5
Run Code Online (Sandbox Code Playgroud)
所以现在我知道Math.sin(valueofAngleX)会回来0.5.
但是如果我使用Math()库知道角度的正弦,我如何得到角度的值?
根据本教程,我需要做:
var angleX = sin to the power of negative one of 0.5
但我不知道如何将其翻译成JS.
我试过了 :
var angleX = Math.pow(Math.sin(sinOfAngleX), -1);
Run Code Online (Sandbox Code Playgroud)
但它返回2.085829642933488,这显然是错误的.正确的答案应该是30
如果以上所有内容都是错误的,有没有人知道如何使用JS Math()库正确计算角度X?
谢谢!
来自我正在做的客户:
$.ajax({
url: '/create',
type: 'POST',
data: JSON.stringify({
theme: "somevalue",
snippet: {
name: "somename",
content: "somevalue"
}
}),
complete: function (response)
{
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器 ( node.js/express.js) 上我正在做:
var app = express();
app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
.......
...
app.post('/create', function (req, res)
{
var dataReceived = req.body;
});
Run Code Online (Sandbox Code Playgroud)
我预计的值为 dataReceived:
{
"theme" : "somevalue",
"snippet" : {
"name": "somename",
"content" : "somevalue"
}
}
Run Code Online (Sandbox Code Playgroud)
取而代之的dataReceived是:
{
'{"theme":"somevalue","snippet":"name":"somename","content":"somevalue"}}': ''
}
Run Code Online (Sandbox Code Playgroud)
这真的很奇怪,我找不到我做错了什么。有任何想法吗?
bodyParser.urlencoded(选项)
返回仅解析 …
以下服务器应该:
案例#1:mysitename.html如果请求是,则提供http://localhost:8080
情况#2:如果请求是例如,则提供相关文件 http://localhost:8080/mysitename.html
如果请求是,情况#3给我发电子邮件 http://localhost:8080/contactform?name=..&..&...etc.
如果我访问http://localhost:8080/mysitename.html一切正常.mysitename.html加载,然后通过它加载所有后续内容(.js,.css,.png等).
问题:但是,如果我访问http://localhost:8080,会发生以下情况:
CASE#2最初出现错误,导致Johnny Estilles发现无限循环(参见下面的答案).此后已经修复,但现在出现上述问题.
server.js
// setting up email handler
var nodemailer = require('nodemailer');
var emailHandlerService = 'Gmail';
var emailHandlerAddress = ******;
var emailHandlerPassword = ******;
var transporter = nodemailer.createTransport({
service: emailHandlerService,
auth: {
user: emailHandlerAddress,
pass: emailHandlerPassword
}
});
// setting up http server
var http = require('http');
var fs = require('fs');
var url = require("url"); …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,每当我从父级获得新的 props 时,新的 props 都会正确记录在控制台上,但渲染的 HTML 在初始渲染后永远不会更新:
export default function(props) {
const [state, setState] = useState(props)
// initially, props.something is defined
// every time props changes (from the parent) props.something is redefined as expected and logged here
console.log(props.something)
// initially, props.something is rendered correctly
// every time props.something changes (from the parent) the HTML never updates
return (
{state.something && <div>{state.something}</div>}
)
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用useEffect(),尽管我没有看到这一点,但它没有解决任何问题。
是否有标准的 CSS 方法为文本设置 2 种颜色?一种前景色和一种背景色,该背景色位于前景色的正下方但稍稍偏右,以便您实际上可以看出前景色后面有一种背景色?
类似于下图,但没有 3D 效果。我不关心背景颜色有多深,只要你能区分出有两种颜色即可。一个在前面,一个在它的正下方,但稍微偏右,这样背景颜色也有点可见。

预先感谢您的任何帮助!:)
考虑以下 :
var a = 5;
var b = function ()
{
console.log (a + 5);
};
var c = b.toString();
Run Code Online (Sandbox Code Playgroud)
经过上述执行后,c将等于:
"function ()
{
console.log (a + 5);
}"
Run Code Online (Sandbox Code Playgroud)
我怎么能c等于:
"function ()
{
console.log (5 + 5);
}"
Run Code Online (Sandbox Code Playgroud)
代替?
我尝试了以下方法:
var a = 5;
var b = function ()
{
console.log ('<%a%>' + 5);
};
var c = b.toString().replace('<%a%>', a);
Run Code Online (Sandbox Code Playgroud)
但上面显然c等于:
"function ()
{
console.log ('5' + 5);
}"
Run Code Online (Sandbox Code Playgroud)
是否有其他方法来实现这个(javascript + RegEx)而不使用像underscore …
考虑附加到文档的以下图像:
<img id="someimage" src="http://www.someimage.jpg">
Run Code Online (Sandbox Code Playgroud)
如果在调用这些函数时已经加载了图像,则以下任何一项都不起作用:
document.getElementById('someimage').onload = function ()
{
console.log('image just loaded');
};
Run Code Online (Sandbox Code Playgroud)
也不
$("#someimage").load(function ()
{
console.log('image just loaded');
});
Run Code Online (Sandbox Code Playgroud)
有办法吗?即一个不会等待图像加载但会检查图像是否已经加载的功能?
谢谢
我需要一个正则表达式来测试一个辅音是否跟在一个字符串中的另一个辅音之后。
因此,例如“驴”将返回 true,因为它包含一个 'n' 后跟一个 'k'
我试过 :
/(bcdfgjklmnpqrstvwxz)*/i.test(someword);
Run Code Online (Sandbox Code Playgroud)
这显然是错误的,因为它只是测试字符串中是否有这些辅音。
我不知道对于这组相邻的辅音中的任何 2 个字符,我基本上应该使用什么语法
谢谢你的帮助!
我有两个问题:
No1:
我正在尝试提供一个RegEx,它将返回在URL末尾找到的文件扩展名:
例如
假设URL中的文件扩展名只能以这种格式显示:
.../.../..../..../filename.fileextension.
我正在获得如下文件扩展名(请原谅我的C++启发语法,这对我来说更容易/更清晰地阅读这样的代码):
var fileExtension;
if (document.location.href.match(/.*\.(.*)$/) && document.location.href.match(/.*\.(.*)$/)[1])
{
fileExtension = document.location.href.match(/.*\.(.*)$/)[1];
}
Run Code Online (Sandbox Code Playgroud)
我希望上面的RegEx意味着匹配URL中最后一个点之后的所有内容.
是这种情况还是存在上述RegEx失败的情况?如果是这样,正确的RegEx会是什么?
No2:
我想要做到这一点的原因是因为我想建立一个我的第一个Node.js服务器,我试图让它尽可能高效.每当收到特定文件的请求时,我想循环遍历所有可能的文件扩展名的数组,找到正确的文件扩展名,并在我的响应的头部返回相应的内容类型.出于这个原因,我创建了一个JSON文件(content-types.json),其中包含所有可能的文件扩展名(准确地说是646),以及相关的内容类型.它看起来像这样:
{
"3dm" : "x-world/x-3dmf",
"3dmf" : "x-world/x-3dmf",
"a" : "application/octet-stream",
"aab" : "application/x-authorware-bin",
"aam" : "application/x-authorware-map",
......etc.
}
Run Code Online (Sandbox Code Playgroud)
所以使用上面的JSON文件,我正在创建我的server.js,如下所示:
var http = require('http');
var fs = require('fs');
var contentTypes = JSON.parse(fs.readFileSync("content-types.json"));
var host = "127.0.01";
var port = 1825;
var server = http.createServer(function (request, response)
{
fs.readFile("." + request.url, function (error, data)
{
if (error) …Run Code Online (Sandbox Code Playgroud) 我有一个包含可滚动内容的div,我想在该div上面放置一个叠加层.
但是,叠加层使其下面的所有内容都不可滚动且不可忽略(显然).有办法吗?一些HTML/CSS/JS组合可能保持可见,但允许它下面的div仍然可滚动/可点击?
我问的原因是因为我有一个带背景图像的div(这是我的叠加层).但是图像中间有一个洞(它是部分透明的png).因此,实际位于此叠加层下方的div是可见的.所以我希望能够与该div进行交互.
我知道我可以编写Js来将任何点击/滚动事件从一个元素转移到另一个元素但是我在一个页面上有很多上述设置的实例,所以为每个案例编写Js都是一种过度杀伤力.
预先感谢您的帮助.
CSS
#scroller {
position: absolute;
top: 0px;
left: 0px;
height: 100px;
width: 50px;
}
#scroller>div {
position: absolute;
top: 0px;
left: 0px;
height: 500px;
width: 50px;
}
#scroller-overlay {
position: absolute;
top: 0px;
left: 0px;
height: 100px;
width: 50px;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div id="scroller">
<div></div>
</div>
<div id="scroller-overlay"></div>
Run Code Online (Sandbox Code Playgroud)
JSFIDDLE:http://jsfiddle.net/7L8cmeuo/3/
javascript ×9
html ×3
json ×3
node.js ×3
regex ×3
css ×2
colors ×1
content-type ×1
express ×1
image ×1
jquery ×1
math ×1
onload ×1
overlay ×1
post ×1
reactjs ×1
scrollable ×1
text ×1
tostring ×1
trigonometry ×1
woocommerce ×1
wordpress ×1