我正在使用名为Quickbooks Integration Woocommerce的插件。我有一些问题让这个正常工作。有一个更新版本的插件,但我无法购买,因为它出于某种原因缺货。
我还发现This Github repository这似乎与插件非常相似。由同一作者撰写。但是我不会撒谎。我在我脑海里。这是我第一次遇到这样的事情,我似乎无法弄明白。
所以我希望如果我发布我的错误日志,有人可以帮助指出我所需的方向,并可能为我提供一些答案。
对于那些不是洁具的人。您安装插件并生成.QWC文件。然后,您将该文件上传到Quickbooks Web Connector,它将同步您的woocommerce产品。
这是我的.QWC文件:
<?xml version="1.0"?>
<QBWCXML>
<AppName>WooCommerce QuickBooks Connector</AppName>
<AppID></AppID>
<AppURL>https://my-site.com/?qbconnector=A2DRnLfb8qrU</AppURL>
<AppDescription>QuickBooks Connector for Woocommerce.</AppDescription>
<AppSupport>https://my-site.com/?qbconnector=support</AppSupport>
<UserName>ply-quickbooks-connection</UserName>
<OwnerID>{ADA96507-86F1-4FCC-B1FF-166DE1813D21}</OwnerID>
<FileID>{ADA96507-86F1-4FCC-B1FF-966DE1813D21}</FileID>
<QBType>QBFS</QBType>
<Notify>false</Notify>
<IsReadOnly>false</IsReadOnly>
</QBWCXML>
当我与Quickbooks Web Connector建立连接时,它似乎连接并进行身份验证。然后进入Say&#34; SendRequestXML失败&#34;。这是日志文件:https://jsfiddle.net/m8berLyu/。对我来说突出的是:
0161026.22:43:22 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : QBWC1041: SendRequestXML failed.
Error message: Response is not well-formed XML.
我不知道这意味着什么。
以下是来自服务器的错误日志:
[Wed Oct 26 23:23:23.100819 2016] [:error] [pid 10927] [client ] PHP Notice: wpdb::prepare was called <strong>incorrectly</strong>. The query argument of wpdb::prepare() must have a placeholder. Please see <a href="https://codex.wordpress.org/Debugging_in_WordPress">Debugging in WordPress</a> for more information. (This message was added in version 3.9.0.) in /nas/content/live/ply/wp-includes/functions.php on line 3996, referer: https://my-site.com/wp-admin/plugins.php?plugin_status=all&paged=1&s
[Wed Oct 26 23:23:45.015771 2016] [:error] [pid 10926] [client ] PHP Notice: unserialize(): Error at offset 65529 of 65535 bytes in /nas/content/live/ply/wp-content/plugins/woocommerce-quickbooks/QuickBooks/WebConnector/Handlers.php on line 756
[Wed Oct 26 23:35:09.153751 2016] [:error] [pid 312] [client ] PHP Notice: unserialize(): Error at offset 65532 of 65535 bytes in /nas/content/live/ply/wp-content/plugins/woocommerce-quickbooks/QuickBooks/WebConnector/Handlers.php on line 756
[Wed Oct 26 23:38:37.273773 2016] [:error] [pid 466] [client ] PHP Notice: wpdb::prepare was called <strong>incorrectly</strong>. The query argument of wpdb::prepare() must have a placeholder. Please see <a href="https://codex.wordpress.org/Debugging_in_WordPress">Debugging in WordPress</a> for more information. (This message was added in version 3.9.0.) in /nas/content/live/ply/wp-includes/functions.php on line 3996, referer: https://my-site.com/wp-admin/admin.php?page=quickbooks_setup&tab=sod_qbconnector_setup
最后是Handlers.php上第756行的代码:
$extra = '';
if ($next['extra'])
{
//Line 756 below
$extra = unserialize($next['extra']);
}
一如既往,任何帮助都非常感谢。我对PHP并不陌生,但对于这一点,我完全是一个菜鸟。如果需要任何其他信息,请告诉我。
谢谢。
干杯,
肖恩
答案 0 :(得分:1)
我还发现这个Github存储库看起来与插件非常相似。由同一作者撰写。
它实际上不是由同一作者写的(来源:我是作者)。
我构建了核心库。他们接受了它(它的开源,这很酷),然后写了很多自己的“胶水”代码,将QuickBooks与WooCommerce集成在一起。
然后继续说“SendRequestXML失败”。 错误消息:响应不是格式良好的XML。
任何时候你看到这个,都意味着PHP“粘合”代码有问题。
WooCommerce在他们的代码中做了一些不好/不正确的事情。
您是否联系过WooCommerce支持并告诉他们他们与QuickBooks的集成是否已损坏?你应该。
这:
[Wed Oct 26 23:35:09.153751 2016] [:error] [pid 312] [client] PHP注意:unserialize():/ nas / content / live / ply / wp中65535字节的偏移量65532处出错第756行的内容/插件/ woocommerce-quickbooks / QuickBooks / WebConnector / Handlers.php
真是个好线索! you 进行这样的调试,真是太棒了!
65535 bytes
是MySQL text
列的最大大小。如果你查看你的数据库,我敢打赌,WooCommerce正在构建非常大的XML文档(正是它们不应该做的事情),并试图将它们存储在MySQL中(可能在quickbooks_queue
SQL表中)。
他们应该不这样做。如果他们在quickbooks_queue
表中存储XML,那么他们做错了。
您可能能够通过将SQL quickbooks_queue.extra
列更改为longtext
类型来暂时解决您的问题。绕过WooCommerce的破坏实施是一个可怕的黑客攻击,但它可能会起作用/值得一试。
如果做不到这一点,您的第一步应该是与WooCommerce支持人员交谈。如果他们需要帮助,请告诉他们联系我 - 我很乐意提供帮助!我一直与人们交谈,因为他们的实施工作受到了破坏,并乐意帮助他们改进它!