Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Tuesday, 2 June 2020

Former Pollen employees were asked to sign an ‘NDA masked as a severance agreement’

Pollen, the U.K.-headquartered travel and events marketplace, describes its company culture as built on principles of “freedom” and openness, including a well-publicised pay transparency policy. However, that doesn’t appear to always be the case with regards to the treatment of recently departing employees.

When the word-of-mouth marketing company laid off 69 staff from its various U.S. and Canada entities last month, axed staff were asked to sign a severance agreement that included a clause prohibiting them from disclosing the content of the agreement, including to current and former employees.

In addition, multiple sources tell TechCrunch the severance contracts feature a broader non-disparagement clause. Such clauses are typically used to prohibit current or former employees from talking about a company or its staff and leadership in a way that is harmful to the business or individuals associated with the business.

“It was basically an NDA masked as a severance agreement,” said one former Pollen employee, who asked not to be identified. “They dangled our last pay check in front of us so that we felt pressure to give away our rights, and they paired that with an abrupt cut off from the company. I was told I was laid off and then promptly removed from all correspondence within a 24 hour period”.

Pollen co-founder and CEO Callum Negus-Fancey doesn’t dispute the existence of either clause, but says both are a “standard inclusion” in severance agreements and were drafted by external employment lawyers. “However, we’re going to discuss internally if it’s necessary to continue to include these kinds of clauses given the company’s focus on transparency,” he added. “We strive to adopt best practices throughout Pollen”.

However, according to HR experts TechCrunch has spoken to, including one HR professional with years of experience working for large tech companies in the U.S., such confidentiality and non-disparagement clauses aren’t typically employed in more general redundancy situations. Instead, they are more commonly used where a severance contract is agreed after a dispute between a departing employee and the company, or when a company is concerned there could be adverse publicity.

“For a company that strives itself on transparency, there is actually a deep undertone of political rhetoric about what should or should not be talked about,” a former Pollen employee tells TechCrunch.

Meanwhile, Pollen, or rather JusCollege, one of its many brands and entities, did attract negative media headlines earlier this year as it grappled with the emerging coronavirus situation. Parents of students who canceled a spring break to Mexico in mid-March told NBC News that they weren’t offered refunds despite concerns over the virus and had been reassured that the trip was safe. On the 12th March, two days before departure, the World Health Organisation (WHO) declared a pandemic. Subsequently, according to the University of Texas, dozens of students that went on the trip tested positive for COVID-19 when they returned to the U.S.

In response, a JusCollege spokesperson told the Independent newspaper: “We take the safety of our customers very seriously and are working with public health authorities to assist where we can. JusCollege always follows U.S. government regulations and guidance from the state department when making travel recommendations, and Mexico was not under a federal travel advisory at the time the trip departed… Our thoughts are with the students who are ill and the healthcare providers and public health officials who are working to mitigate the impact of COVID-19.”

In a call, and followed up over email, Negus-Fancey said that Pollen wasn’t in a position to cancel the spring break trip and offer full refunds at the time because the U.S. government was yet to advise travel restrictions to Mexico. He also explained that the company acts as a “curator and distributor” connecting customers with suppliers, such as hotels, airlines and nightclubs, who set their own refund policies. “The money doesn’t sit with us, it sits with our partners. We take a commission in the middle,” he said.

Adds the Pollen CEO: “All customers who didn’t want to travel were refunded at a minimum whatever was received back from clients (hotels, airlines or other providers) or they were given a 100% credit to a future trip. The team worked tirelessly over weeks to achieve this outcome for customers as it was at the discretion of clients given there were no travel warnings in place at the time about flying to Mexico. We were materially out of pocket as a result of this effort because despite the circumstances, we took a long term view to do right by customers and as a result paid out in many circumstances where clients had not refunded us”.

Separately, following layoffs in North America and 34 furloughs in the U.K., TechCrunch has learned that Pollen has put another 56 members of staff on furlough, as the travel and events sector continues to be hit hard by the coronavirus crisis. They comprise 45 in the U.S., 7 in the U.K., and 4 in Canada.

Confirming the latest round of furloughs, Negus-Fancey says employees are being supported by each country’s various government furlough schemes and that Pollen U.S. furloughed employees were given “over a weeks notice on full pay and we are covering their medical insurance whilst they are on furlough leave”.

Founded in 2014 and previously called Verve, Pollen operates in the influencer or “word-of-mouth” marketing space. The marketplace lets friends or “members” discover and book travel, events and other experiences — and in turn helps promoters use word-of-mouth recommendations to sell tickets. Pollen’s backers include Northzone, Sienna Capital, Draper Esprit, Backed and Kindred.



from TechCrunch https://ift.tt/2XpnmEn
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support