小编Nic*_*ick的帖子

在Woocommerce中获取自定义产品属性

我试图获得产品自定义属性值,但我很难做到这一点.

我试着这样做:

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)

我知道有一个值,因为它在属性部分显示它,但我无法找到一种方法让它在我的自定义代码中显示.

php wordpress product custom-taxonomy woocommerce

60
推荐指数
7
解决办法
16万
查看次数

Laravel Eloquent模型的临时财产

我有一个Laravel Eloquent模型User,它有一个包含用户名和电子邮件列的表.我需要在运行时为模型添加一个属性,比如$ user-> secure.此属性不需要转到数据库.

当我添加此属性并点击$ user-> save()时,我收到一条错误消息,说我没有数据库列'secure'.我可以在保存之前取消'安全'但不知何故感觉应该有更好的方法.有什么建议?

php laravel eloquent

18
推荐指数
2
解决办法
8461
查看次数

来自php的$ .ajax(延迟)对象强制失败

我正在做一个小的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)

ajax jquery

6
推荐指数
1
解决办法
1625
查看次数

用npm安装gulp

我试图通过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)

node.js npm digital-ocean

6
推荐指数
1
解决办法
1万
查看次数

开玩笑的模拟和打字稿

我正在为包装提取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)

我该如何解决?

typescript jestjs

6
推荐指数
2
解决办法
2927
查看次数

如何在TypeScript中合并两个Maps

我想合并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)

我假设我必须以某种方式将它投射到数组,但我没有找到一个有效的解决方案.我该如何解决这个问题呢?

typescript

6
推荐指数
3
解决办法
5560
查看次数

Chrome扩展跨域请求

我知道这里已经讨论了很多次,我已经阅读了大部分这些线程,但我似乎无法让我的脚本工作.

问题是我试图使用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)

脚本本身在扩展之外工作,因此我认为问题不在脚本中,而是具有权限.

我在这做错了什么?

cross-domain google-chrome-extension

5
推荐指数
1
解决办法
1万
查看次数

在同一域中具有多个Laravel实例时会话/ cookie错误

你好,我开始使用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)

php laravel

5
推荐指数
1
解决办法
1586
查看次数

Javascript replace()和$ 1问题

我正在尝试创建一个脚本,在文本中搜索模式并在找到的字符串周围包装标记.

$(".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的标签.我期望它做的是将它找到的字符串放入强标签.我在这做错了什么?

javascript regex

5
推荐指数
1
解决办法
1665
查看次数

错误的内容类型被替换为获取 http 请求

我在客户端有这个代码:

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 和请求有效负载时也被省略。下面是一个例子:

没有 JSON.stringify() 的结果

javascript json http fetch

0
推荐指数
1
解决办法
1355
查看次数