我试图获得产品自定义属性值,但我很难做到这一点.
我试着这样做:
global $woocommerce, $post, $product;
$res = get_post_meta($product->id);
print_r(unserialize($res['_product_attributes'][0]));
Run Code Online (Sandbox Code Playgroud)
而且我得到了这些原始数据:
[pa_koostis] => Array
(
[name] => pa_koostis
[value] =>
[position] => 0
[is_visible] => 1
[is_variation] => 0
[is_taxonomy] => 1
)
Run Code Online (Sandbox Code Playgroud)
我知道有一个值,因为它在属性部分显示它,但我无法找到一种方法让它在我的自定义代码中显示.
我有一个Laravel Eloquent模型User,它有一个包含用户名和电子邮件列的表.我需要在运行时为模型添加一个属性,比如$ user-> secure.此属性不需要转到数据库.
当我添加此属性并点击$ user-> save()时,我收到一条错误消息,说我没有数据库列'secure'.我可以在保存之前取消'安全'但不知何故感觉应该有更好的方法.有什么建议?
我正在做一个小的ajax乒乓,并想知道是否有可能强制延迟的ajax对象从PHP进入失败状态.
$.ajax({
url: 'example.com/post',
dataType: 'json'
})
.done(function(data) {
console.log(data);
})
.fail(function(data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
在PHP中
function post() {
if (false) {
echo json_encode(array('all good'));
} else {
???
}
}
Run Code Online (Sandbox Code Playgroud) 我试图通过npm在DigitalOcean droplet上安装gulp with following命令(有和没有sudo):
npm install -g gulp
Run Code Online (Sandbox Code Playgroud)
而我得到错误我无法弄清楚:
> v8flags@1.0.5 install /root/local/lib/node_modules/gulp/node_modules/v8flags
> node fetch.js
sh: 1: node: Permission denied
npm ERR! Linux 3.13.0-24-generic
npm ERR! argv "node" "/root/local/bin/npm" "install" "-g" "gulp"
npm ERR! node v0.10.33
npm ERR! npm v2.1.11
npm ERR! code ELIFECYCLE
npm ERR! v8flags@1.0.5 install: `node fetch.js`
npm ERR! Exit status 127
npm ERR!
npm ERR! Failed at the v8flags@1.0.5 install script 'node fetch.js'.
npm ERR! This is most likely a problem with the v8flags package, …
Run Code Online (Sandbox Code Playgroud) 我正在为包装提取API的函数编写测试。
const callAPI = (uri: string, options: RequestParams) => {
let headers = { requestId: shortid.generate() };
if (options.headers) {
headers = { ...options.headers, ...headers};
}
const opts = {...options, ...{ headers }};
return fetch(uri, opts);
};
Run Code Online (Sandbox Code Playgroud)
并对此功能进行如下测试:
it('should add requestId to headers', () => {
window.fetch = jest.fn();
callAPI('localhost', { method: 'POST' });
expect(window.fetch.mock.calls[0][1]).toHaveProperty('headers');
expect(window.fetch.mock.calls[0][1].headers).toHaveProperty('requestId');
});
Run Code Online (Sandbox Code Playgroud)
问题是打字稿无法识别提取是模拟的,因此无法在window.fetch上找到模拟属性。这是错误:
[ts] Property 'mock' does not exist on type '(input: RequestInfo, init?: RequestInit) => Promise<Response>'.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我想合并2个地图.在ES6中,我会这样做,它完全正常:
const m1 = new Map();
m1.set('foo', 1);
const m2 = new Map();
m2.set('bar', 3);
const m3 = new Map([...m1, ...m2]);
Run Code Online (Sandbox Code Playgroud)
如果我在TS中执行相同操作,则会出现以下错误:
Type 'Map<string, number>' is not an array type.
Run Code Online (Sandbox Code Playgroud)
我假设我必须以某种方式将它投射到数组,但我没有找到一个有效的解决方案.我该如何解决这个问题呢?
我知道这里已经讨论了很多次,我已经阅读了大部分这些线程,但我似乎无法让我的脚本工作.
问题是我试图使用bitly api来缩短谷歌Chrome扩展中的网址.我在本地存储中保存用户登录和apiKey,在此之前我验证它们.
这样做的代码是:
$.ajax({
url:"http://api.bit.ly/v3/validate",
dataType:'jsonp',
data:{
login: login,
apiKey: apiKey,
x_login :"test",
x_apiKey :"test"
},
success:function (jo, textStatus, jqXHR) {
if (jo.status_code == 200) {
setItem('dg_BitlyApiKey', apiKey);
setItem('dg_BitlyLogin', login);
alert('Saved');
} else {
alert('Incorrect login and/or apiKey!')
}
}
});
Run Code Online (Sandbox Code Playgroud)
我确实设置了权限,"permissions": ["tabs", "notifications", "http://*/*", "https://*/*"]
但我仍然继续:
Refused to load script from 'http://api.bit.ly/v3/validate?callback=jQuery17204477599645033479_1334062200771&login=&apiKey=&x_login=test&x_apiKey=test&_=1334062201506' because of Content-Security-Policy.
Run Code Online (Sandbox Code Playgroud)
脚本本身在扩展之外工作,因此我认为问题不在脚本中,而是具有权限.
我在这做错了什么?
你好,我开始使用Laravel框架为我的Facebook应用程序Lateley,我创建了一个基本的应用程序,我为每个新项目复制,并从那里开始修改.我做的第一件事是我在config/application.php文件中的应用程序密钥中更改几个字母.
现在,如果我同时开发2个应用程序并在它们之间切换,我会遇到某些缓存/ cookie错误阻止我的应用程序显示.我可以通过删除与我存储应用程序的域名相关的cookie来摆脱它们,但据我所知,碰巧访问我的应用程序的用户可能会发生同样的事情.
我怎么能让它正常工作?
这是我得到的错误:
Unhandled Exception
Message:
unserialize() [function.unserialize]: Error at offset 0 of 704 bytes
Location:
/mydomainpath/myapp/laravel/session/drivers/cookie.php on line 24
Stack Trace:
#0 /mydomainpath/myapp/laravel/laravel.php(40): Laravel\Error::native(8, 'unserialize() [...', '/data01/virt319...', 24)
#1 [internal function]: Laravel\{closure}(8, 'unserialize() [...', '/data01/virt319...', 24, Array)
#2 /mydomainpath/myapp/laravel/session/drivers/cookie.php(24): unserialize('??1?:????9O??.?...')
#3 /mydomainpath/myapp/laravel/session/payload.php(52): Laravel\Session\Drivers\Cookie->load('oBACwMEgwF2YXeZ...')
#4 /mydomainpath/myapp/laravel/session.php(35): Laravel\Session\Payload->load('oBACwMEgwF2YXeZ...')
#5 /mydomainpath/myapp/application/start.php(172): Laravel\Session::load()
#6 /mydomainpath/myapp/laravel/bundle.php(102): require('/data01/virt319...')
#7 /mydomainpath/myapp/laravel/laravel.php(76): Laravel\Bundle::start('application')
#8 /mydomainpath/myapp/public/index.php(34): require('/data01/virt319...')
#9 {main}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个脚本,在文本中搜索模式并在找到的字符串周围包装标记.
$(".shop_attributes td").each(function () {
$(this).html(function(i, html) {
return html.replace(/E[0-9]{3,4}/g, "<strong>$1</strong>");
});
});
Run Code Online (Sandbox Code Playgroud)
这是我使用的代码,它确实找到我正在寻找的东西,但它实际上做的是生成一个内部$ 1的标签.我期望它做的是将它找到的字符串放入强标签.我在这做错了什么?
我在客户端有这个代码:
return fetch('http://localhost:8080/api/authenticate', {
method: 'POST',
mode: 'no-cors',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: 'admin',
password: 'admin',
}),
});
Run Code Online (Sandbox Code Playgroud)
当我出于某种原因发送此请求时 Content-Type 被替换为text/plain;charset=UTF-8
. 这使我的服务器端无法请求,因为它只接受application/json
请求。我在这里做错了什么?我正在使用 Chrome 51,这是我的要求:
编辑:当我删除JSON.strigify()
Content-Type 和请求有效负载时也被省略。下面是一个例子:
php ×3
javascript ×2
laravel ×2
typescript ×2
ajax ×1
cross-domain ×1
eloquent ×1
fetch ×1
http ×1
jestjs ×1
jquery ×1
json ×1
node.js ×1
npm ×1
product ×1
regex ×1
woocommerce ×1
wordpress ×1